From f901bc279504ec16aef08a9765345d75fc68d1a1 Mon Sep 17 00:00:00 2001 From: John Birrell Date: Sat, 11 Apr 1998 07:02:58 +0000 Subject: [PATCH] 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. --- lib/libc/stdlib/exit.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/libc/stdlib/exit.c b/lib/libc/stdlib/exit.c index a8f6e24164d..5df19dc1bd4 100644 --- a/lib/libc/stdlib/exit.c +++ b/lib/libc/stdlib/exit.c @@ -41,6 +41,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. */