Logtalk reference manual
Built-in predicate: threaded_call/1-2

threaded_call/1-2

Description

threaded_call(Goal)
threaded_call(Goal, Tag)

Proves Goal asynchronously using a new thread. The argument can be a message sending goal. Calls to this predicate always succeeds and return immediately. The results (success, failure, or exception) are sent back to the message queue of the object containing the call (this); they can be retrieved by calling the threaded_exit/1 predicate.

The variant threaded_call/2 returns a threaded call identifier tag that can be used with the threaded_exit/2 predicate. Tags shall be considered as an opaque term; users shall not rely on its type.

Template and modes

threaded_call(@callable)
threaded_call(@callable, -nonvar)

Errors

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

Examples

Prove Goal asynchronously in a new thread:
threaded_call(Goal)
Prove ::Message asynchronously in a new thread:
threaded_call(::Message)
Prove Object::Message asynchronously in a new thread:
threaded_call(Object::Message)