Subject: Re: pthreads plan
To: Giles Lean <giles@nemeton.com.au>
From: Todd Vierling <tv@pobox.com>
List: tech-userlevel
Date: 11/06/1999 15:25:53
On Sun, 7 Nov 1999, Giles Lean wrote:
: > If possible, it would be really neat to avoid the situation where
: > there are threaded objects and non-threaded objects, and never the
: > twain shall meet.
:
: I concur. Avoiding support questions about having to recompile code
: with _REENTRANT is a worthy goal.
This adds Yet More Hacks when, indeed, POSIX explicitly states that you
*must* set _REENTRANT for such code. Support questions or not, just tell
people "set _REENTRANT... the pthread man pages tell you to do so."
If you want to do the equivalent to setting _REENTRANT unconditionally, that
adds a performance hit to explicitly single-threaded code (as opposed to
just the guts of libraries, such as libc, which are compiled that way to be
shareable between single-threaded and MT code). See <errno.h>, for example.
(Not to mention the Linuxlike programming attitude we'd give people who
think that code written on NetBSD will compile properly on other systems
without _REENTRANT.)
: > You can get the overhead for normal programs down to a single
: > condition check by introducing a global flag which gets set when the
: > first thread is created.
:
: I would prefer this, if the performance impact is acceptable.
Ask the vax folk. (Hi ragge! :)
: Library implementors still have to be very careful not to make
: assumptions that a program is not threaded just because Right Now it
: is only single threaded.
This issue is, of course, well known.
--
-- Todd Vierling (tv@pobox.com)