XInitThreads(3X11) X Version 11 (Release 6.6) XInitThreads(3X11)
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.
Page 1 (printed 7/20/06)
XInitThreads(3X11) X Version 11 (Release 6.6) XInitThreads(3X11)
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
Page 2 (printed 7/20/06)