Attempt to fix build farm on platforms where pthread_once_t is a struct.
authorJeremy Allison <jra@samba.org>
Mon, 20 Apr 2009 11:00:06 +0000 (04:00 -0700)
committerJeremy Allison <jra@samba.org>
Mon, 20 Apr 2009 11:00:06 +0000 (04:00 -0700)
Jeremy.

lib/util/smb_threads.h
lib/util/talloc_stack.c

index f4ed1fcb9aaa885157ea561990ac954f3a6ab016..682e142c5bc28bfb62b71499904eafc01b9f6a80 100644 (file)
 
 #if defined(HAVE_PTHREAD_H)
 #define SMB_THREAD_ONCE_INIT PTHREAD_ONCE_INIT
+#define SMB_THREAD_ONCE_IS_INITIALIZED(val) (true)
+#define SMB_THREAD_ONCE_INITIALIZE(val)
 #else
-#define SMB_THREAD_ONCE_INIT false
+#define SMB_THREAD_ONCE_IS_INITIALIZED(val) ((val) == true)
+#define SMB_THREAD_ONCE_INITIALIZE(val) ((val) = true)
 #endif
 
 enum smb_thread_lock_type {
index f5ca9d21d54725265f6d92f3484e2279cd6fef52..2ed18fa1139ac54984b1a91078f0efc45b4b0399 100644 (file)
@@ -62,10 +62,10 @@ static void talloc_stackframe_init(void)
 {
        if (!global_tfp) {
                /* Non-thread safe init case. */
-               if (ts_initialized) {
+               if (SMB_THREAD_ONCE_IS_INITIALIZED(ts_initialized)) {
                        return;
                }
-               ts_initialized = true;
+               SMB_THREAD_ONCE_INITIALIZE(ts_initialized);
        }
 
        if (SMB_THREAD_CREATE_TLS("talloc_stackframe", global_ts)) {