Re: XInitThreads multiple times
On 8/5/21 8:36 AM, Keith Packard wrote: Dawid Kowalczyk 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
XInitThreads multiple times
Yes, that's kind of what it's for! Just make sure to lock (and unlock) the display in each thread. > > > > 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. > Also remember to lock (and unlock) the display in each thread.
Re: XInitThreads multiple times
Dawid Kowalczyk 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. -- -keith signature.asc Description: PGP signature
XInitThreads multiple times
Hello, Is it possible to call |XInitThreads| multiple times, for example 20 times and not worry who calls it first?