Copyright Digital Equipment Corp. All rights reserved.

Description

   This routine initializes the condition variable cond with
   attributes specified in the attr argument. If attr is NULL, the
   default condition variable attributes are used.

   A condition variable is a synchronization object used in
   conjunction with a mutex. A mutex controls access to data that
   is shared among threads; a condition variable allows threads to
   wait for that data to enter a defined state.

   Condition variables are not owned by a particular thread. Any
   associated storage is not automatically deallocated when the
   creating thread terminates.

   Use the macro PTHREAD_COND_INITIALIZER to initialize statically
   allocated condition variables to the default condition variable
   attributes. To invoke this macro, enter:

      pthread_cond_t condition = PTHREAD_COND_INITIALIZER

   When statically initialized, a condition variable should not also
   be initialized using pthread_cond_init(). Also, a statically
   initialized condition variable need not be destroyed using
   pthread_cond_destroy().

   Under certain circumstances it might be impossible to wait upon
   a statically initialized condition variable when the process
   virtual address space (or some other memory limit) is nearly
   exhausted. In such a case pthread_cond_wait() or pthread_cond_
   timedwait() can return [ENOMEM]. To avoid this possibility,
   initialize critical condition variables using pthread_cond_
   init().