XInitThreads(3) XLIB FUNCTIONS XInitThreads(3)
NAME
XInitThreads, XLockDisplay, XUnlockDisplay - multi-threading support
SYNTAX
Status XInitThreads(void);
Status XFreeThreads(void);
void XLockDisplay(Display *
display);
void XUnlockDisplay(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
XFreeThreads function frees the memory allocated by
XInitThreads.
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.
SEE ALSO
Xlib - C Language X InterfaceX Version 11 libX11 1.8.10 XInitThreads(3)