diff options
author | jb <jb@FreeBSD.org> | 1998-04-11 07:02:58 +0000 |
---|---|---|
committer | jb <jb@FreeBSD.org> | 1998-04-11 07:02:58 +0000 |
commit | 4c358b50ecd1504c9834001ecd5ea5046a375942 (patch) | |
tree | 91460af532b9b09d0aa7edaae8e9a743ea103cbd /lib/libc/stdlib | |
parent | 475fa537796c6bc7939de4fc4bd1ce3a0be7aee6 (diff) | |
download | FreeBSD-src-4c358b50ecd1504c9834001ecd5ea5046a375942.zip FreeBSD-src-4c358b50ecd1504c9834001ecd5ea5046a375942.tar.gz |
Add a global variable called __isthreaded that can be tested throughout
libc to determine if locking is required. This is needed in libc
for use with kernel threads, but until a thread is created, we don't
really want to bother locking things. The variable was added here
because the crt code calls exit(main()) so all programs will get the
variable.
Diffstat (limited to 'lib/libc/stdlib')
-rw-r--r-- | lib/libc/stdlib/exit.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/libc/stdlib/exit.c b/lib/libc/stdlib/exit.c index a8f6e24..5df19dc 100644 --- a/lib/libc/stdlib/exit.c +++ b/lib/libc/stdlib/exit.c @@ -42,6 +42,15 @@ static char sccsid[] = "@(#)exit.c 8.1 (Berkeley) 6/4/93"; void (*__cleanup)(); /* + * This variable is zero until a process has created a thread. + * It is used to avoid calling locking functions in libc when they + * are not required. By default, libc is intended to be(come) + * thread-safe, but without a (significant) penalty to non-threaded + * processes. + */ +int __isthreaded = 0; + +/* * Exit, flushing stdio buffers if necessary. */ void |