XInitThreads(3X11)

XInitThreads, XLockDisplay, XUnlockDisplay - multi-threading support

As shipped in IRIX 6.5.30. Unchanged since IRIX 6.5.

     NAME
          XInitThreads, XLockDisplay, XUnlockDisplay - multi-threading
          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
          complete 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 support
          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 initialization 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 correctly;
          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.
     NOTES
          The SGI implementation of Xlib supports concurrent threads
          only for the POSIX thread programming model (pthreads).
          XInitThreads will return zero if the application is not
          linked with the pthread run-time library.  See the
          pthreads(5) man page for information about creating a
          pthread process.

     SEE ALSO
          pthreads(5)
          Xlib - C Language X Interface