From 4c358b50ecd1504c9834001ecd5ea5046a375942 Mon Sep 17 00:00:00 2001 From: jb Date: Sat, 11 Apr 1998 07:02:58 +0000 Subject: 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(+) (limited to 'lib/libc/stdlib/exit.c') 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 -- cgit v1.1