XInitThreads, XLockDisplay, XUnlockDisplay - multi-thread-
       ing support


SYNTAX

       Status XInitThreads();

       void XLockDisplay(display)
             Display *display;

       void XUnlockDisplay(display)
             Display *display;


ARGUMENTS

       display   Specifies the connection to the X server.


DESCRIPTION

       The XInitThreads function initializes Xlib support for
       concurrent threads.  This function must be the first Xlib
       function a multi-threaded program calls, and it must com-
       plete before any other Xlib call is made.  This function
       returns a nonzero status if initialization was successful;
       otherwise, it returns zero.  On systems that do not sup-
       port threads, this function always returns zero.

       It is only necessary to call this function if multiple
       threads might use Xlib concurrently.  If all calls to Xlib
       functions are protected by some other access mechanism
       (for example, a mutual exclusion lock in a toolkit or
       through explicit client programming), Xlib thread initial-
       ization is not required.  It is recommended that single-
       threaded programs not call this function.


       The XLockDisplay function locks out all other threads from
       using the specified display.  Other threads attempting to
       use the display will block until the display is unlocked
       by this thread.  Nested calls to XLockDisplay work cor-
       rectly; the display will not actually be unlocked until
       XUnlockDisplay has been called the same number of times as
       XLockDisplay.  This function has no effect unless Xlib was
       successfully initialized for threads using XInitThreads.

       The XUnlockDisplay function allows other threads to use
       the specified display again.  Any threads that have
       blocked on the display are allowed to continue.  Nested
       locking works correctly; if XLockDisplay has been called
       multiple times by a thread, then XUnlockDisplay must be
       called an equal number of times before the display is
       actually unlocked.  This function has no effect unless
       Xlib was successfully initialized for threads using
       XInitThreads.