ThreadWait

Waits for a thread to finish execution and releases the thread handle

Syntax
   Declare Sub ThreadWait ( ByVal id As Any Ptr )

Usage
   ThreadWait( id )

Parameters
   id
      Any Ptr handle of a thread created by ThreadCreate or ThreadCall

Description
   ThreadWait waits for a thread created by ThreadCreate or ThreadCall to 
   finish execution, and then releases the resources associated with the 
   thread handle. ThreadWait does not return until the thread designated by 
   id ends.
   During the wait, no CPU time is consumed by the caller.

   In order to release a thread handle without waiting for the thread to 
   finish, use ThreadDetach.

   ThreadWait does not force the thread to end; if a thread requires a 
   signal to force its end, a mechanism such as shared variables and 
   mutexes must be used.

   In order to avoid memory leaks, the safe way to end a thread is to 
   always signal to it that it must end, and then call ThreadWait on that 
   thread except if ThreadDetach has previously been called.

   The intrinsic macro __FB_MT__ is only automatically set from the point 
   of usage of ThreadWait onward.

Example
   See the ThreadCreate examples.

Dialect Differences
   * Threading is not allowed in the -lang qb dialect.

Platform Differences
   * ThreadWait is not available with the DOS version of FreeBASIC, 
     because multithreading is not supported by DOS kernel nor the used 
     extender.

Differences from QB
   * New to FreeBASIC

See also
   * ThreadCreate
   * ThreadDetach

