On 8/21/22 18:20, Po Lu wrote:
Alan Coopersmith <alan.coopersm...@oracle.com> writes:
Okay, but we also document that Xlib is thread safe if XInitThreads() has
been called, so both the patch suggested here to keep a static pointer to
a malloc'ed buffer and my suggestion of a global static buffer fail since
calls in different threads would have a race condition over whose answer
got returned. We'd at least need a thread-specific buffer, which it
doesn't look like we've done in Xlib so far.
In modern C that is as simple as using _Thread_local, I think.
I don't know if all our supported platforms support C11 yet - most will,
but even getting to full C99 support took years with holdouts from certain
NetBSD & OpenBSD platforms, and Microsoft's compilers.
(This is a code base that predates C89 by 5 years and was originally
written to K&R C, so C99 is pretty modern for us.)
--
-Alan Coopersmith- alan.coopersm...@oracle.com
Oracle Solaris Engineering - https://blogs.oracle.com/solaris