#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 {
{
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)) {