Copyright Digital Equipment Corp. All rights reserved.

Description

   This routine sets the calling thread's cancelability state and
   returns the calling thread's previous cancelability state in
   oldstate.

   When 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 type
   is enabled.

   When a thread is created, its default cancelability state is
   PTHREAD_CANCEL_ENABLE.
   Possible Problems When Disabling Cancelability
   The most important use of thread cancelation is to ensure
   that indefinite wait operations are terminated. For example, a
   thread that waits on some network connection, which can possibly
   take days to respond (or might never respond), should be made
   cancelable.

   When a thread's cancelability is disabled, no routine in that
   thread is cancelable. As a result, the user is unable to
   cancel the operation performed by that thread. 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.