10.1 Creating and destroying Prolog threads
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Multithreaded applications
        • Creating and destroying Prolog threads
          • thread_create/2
          • thread_create/3
          • thread_self/1
          • thread_join/1
          • thread_join/2
          • thread_detach/1
          • thread_exit/1
          • thread_initialization/1
          • thread_at_exit/1
          • thread_setconcurrency/2
          • thread_affinity/3
    • Packages
Availability:built-in
thread_join(+Id, -Status)
Wait for the termination of the thread with the given Id. Then unify the result status of the thread with Status. After this call, Id becomes invalid and all resources associated with the thread are reclaimed. Note that threads with the attribute detached(true) cannot be joined. See also thread_property/2.

A thread that has been completed without thread_join/2 being called on it is partly reclaimed: the Prolog stacks are released and the C thread is destroyed. A small data structure representing the exit status of the thread is retained until thread_join/2 is called on the thread. Defined values for Status are:

true
The goal has been proven successfully.
false
The goal has failed.
exception(Term)
The thread is terminated on an exception. See print_message/2 to turn system exceptions into readable messages.
exited(Term)
The thread is terminated on thread_exit/1 using the argument Term.