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-2 predicate.
The variant threaded_call/2
returns a threaded call identifier tag
that can be used with the threaded_exit/1-2 predicate.
Tags shall be regarded as opaque terms; users shall not rely on its type.
Modes and number of proofs¶
threaded_call(@callable) - one
threaded_call(@callable, --nonvar) - one
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)