Copyright Digital Equipment Corp. All rights reserved.

Description

   This routine sets the calling thread's cancelability state to
   the value specified in the state argument and returns the calling
   thread's previous cancelability state in the location referenced
   by the oldstate argument.

   When a thread's cancelability state is set to PTHREAD_CANCEL_
   DISABLE, a cancelation request cannot be delivered to the
   thread, even if a cancelable routine is called or asynchronous
   cancelability is enabled.

   When a thread is created, its default cancelability state is
   PTHREAD_CANCEL_ENABLE. When this routine is called prior to
   loading threads, the cancelability state propagates to the
   initial thread in the executing program.
   Possible Problems When Disabling Cancelability
   The most important use of a cancelation request is to ensure that
   indefinite wait operations are terminated. For example, a thread
   waiting on some network connection, which might take days to
   respond (or might never respond), should be made cancelable.

   When a thread's cancelability state is disabled, no routine
   called within that thread is cancelable. As a result, the user
   is unable to cancel the operation. When disabling cancelability,
   be sure that no long waits can occur or that it is necessary
   for other reasons to defer cancelation requests around that
   particular region of code.