On 8/5/21 8:36 AM, Keith Packard wrote:
Dawid Kowalczyk <niex...@gmail.com> writes:
Hello,
Is it possible to call |XInitThreads| multiple times, for example 20
times and not worry who calls it first?
XInitThreads isn't re-entrant, so you need to ensure that it isn't
getting invoked by multiple threads in parallel, but it does check to
see if it has been called before, so it is safe to call multiple times
in sequence.
Right, it's not thread-safe. From the man page:
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**.
(emphasis mine). Looking at the code, it looks like that rule includes
other calls to XInitThreads and not just *other* Xlib functions.
-- Aaron