Logtalk reference manual
Built-in predicate: threaded_peek/1-2
Contents > Reference Manual > Built-in Predicates > threaded_peek/1-2

## threaded_peek/1-2

#### Description

    threaded_peek(Goal)
    threaded_peek(Goal, Tag)

Checks if the result of proving `Goal` in a new thread is already available. This call succeeds or fails without blocking execution waiting for a reply to be available.

The argument of this predicate should be a variant of the argument of the corresponding `threaded_call/1` call. When the predicate argument is subsumed by the `threaded_call/1` call argument, the `threaded_peek/1` call will succeed iff its argument unifies with an already available solution of the (more general) goal.

The variant `threaded_peek/2` accepts a threaded call identifier tag generated by the calls to the `threaded_call/2` and `threaded_once/2` predicates. Tags shall be regarded as an opaque term; users shall not rely on its type.

#### Template and modes

    threaded_peek(+callable)
    threaded_peek(+callable, +nonvar)

#### Errors

Goal is a variable:
  `instantiation_error`
Goal is neither a variable nor a callable term:
  `type_error(callable, Goal)`
Tag is a variable:
  `instantiation_error`

#### Examples

To check for an asynchronous goal proof result:
  `threaded_peek(Goal)`
To check for an asynchronous message to self result:
  `threaded_peek(::Goal)`
To check for an asynchronous message result:
  `threaded_peek(Object::Goal)`