Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #92238
| From | Bonita Montero <Bonita.Montero@gmail.com> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: Thread-safe initialization of static objects |
| Date | 2023-09-29 21:09 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <uf77d7$dnjd$1@dont-email.me> (permalink) |
| References | (20 earlier) <6ba8ab42-f622-4c48-973e-8800f3f44a66n@googlegroups.com> <861qehggye.fsf@linuxsc.com> <uf75ud$de0v$1@dont-email.me> <uf76hu$di35$1@dont-email.me> <uf76t9$de0v$3@dont-email.me> |
Am 29.09.2023 um 21:00 schrieb Chris M. Thomasson:
> Bonita, you have a lot to learn about synchronization algorithms... I
Write sth. like that:
// header:
#pragma once
#include <cstdint>
#include <cassert>
#include <thread>
#include <new>
#include <atomic>
#include <stdexcept>
#include <exception>
#include <limits>
#include <cstdint>
#include <semaphore>
#include <string>
#include <optional>
#include "thread_id.h"
#include "msvc-disabler.h"
#if defined(__llvm__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdangling-else"
#endif
struct wbias_shared_mutex;
struct wbsm_exception : public std::exception
{
enum reason
{
SHARER_COUNTER_SATURATED = 1,
WATING_EXCLUSIVE_COUNTER_SATURATED = 2,
RECURSION_COUNTER_SATURATED = 3
};
wbsm_exception() = delete;
wbsm_exception( wbsm_exception const & ) = default;
reason get_reason();
virtual char const *what() const noexcept;
private:
friend struct wbias_shared_mutex;
wbsm_exception( reason r, char const *what );
reason m_reason;
std::string m_what;
};
inline wbsm_exception::wbsm_exception( reason r, char const *what ) :
m_reason( r ),
m_what( what )
{
}
inline wbsm_exception::reason wbsm_exception::get_reason()
{
return m_reason;
}
static_assert(std::atomic<uint64_t>::is_always_lock_free, "uint64_t must
be lock-free");
struct
#if defined(__cpp_lib_hardware_interference_size)
alignas(std::hardware_destructive_interference_size)
#else
alignas(64)
#endif
wbias_shared_mutex
{
wbias_shared_mutex( int16_t maxExclusiveSpinCount = 0, int16_t
maxSharedSpinCount = 0 );
wbias_shared_mutex( wbias_shared_mutex const & ) = delete;
void operator =( wbias_shared_mutex const & ) = delete;
~wbias_shared_mutex();
void lock_shared( bool force = false );
bool try_lock_shared( bool force = false );
void unlock_shared();
void shared_to_exclusive( thread_id threadId = thread_self() );
void lock_exclusive( thread_id threadId = thread_self() );
bool try_lock_exclusive( thread_id threadId = thread_self() );
bool lock_preferred_shared( bool force = false, thread_id threadId =
thread_self() );
void unlock_exclusive( thread_id threadId = thread_self() );
void exclusive_to_shared( bool force = false );
bool is_shared();
bool is_exclusive();
bool we_are_exclusive( thread_id threadId = thread_self() );
thread_id get_exclusive_thread_id();
uint32_t get_exclusive_recursion_count();
int16_t max_exclusive_spin_count( int16_t max = 100 );
int16_t max_shared_spin_count( int16_t max = 100 );
private:
static_assert(std::atomic<uint64_t>::is_always_lock_free,
"std::atomic<uint64_t> must be always lock-free");
std::atomic<uint64_t> m_atomic;
std::atomic<thread_id> m_exclusiveId;
std::atomic_uint32_t m_exclusiveRecursionCount;
std::atomic_int16_t m_exclusiveSpinCount, m_sharedSpinCount; //
adaptive spinning taken from glibc
std::atomic_int16_t m_maxExclusiveSpinCount, m_maxSharedSpinCount;
std::counting_semaphore<(1 << 21) - 1> m_releaseSharedSem;
std::binary_semaphore m_releaseExclusiveSem;
static unsigned const
WAITING_SHARERS_BASE = 21,
WAITING_EXCLUSIVE_BASE = 2 * 21,
EXCLUSIVE_FLAG_BASE = 3 * 21;
static constexpr uint64_t
MASK21 = 0x1FFFFFu,
SHARERS_MASK = MASK21,
WAITING_SHARERS_MASK = MASK21 << WAITING_SHARERS_BASE,
WAITING_EXCLUSIVE_MASK = MASK21 << WAITING_EXCLUSIVE_BASE,
EXCLUSIVE_FLAG_MASK = (uint64_t)1 << EXCLUSIVE_FLAG_BASE,
SHARER_VALUE = (uint64_t)1,
WAITING_SHARERS_VALUE = (uint64_t)1 << WAITING_SHARERS_BASE,
WAITING_EXCLUSIVE_VALUE = (uint64_t)1 << WAITING_EXCLUSIVE_BASE;
static constexpr short DEFAULT_MAX_SPIN_COUNT = 100;
#if !defined(NDEBUG)
static bool check( uint64_t flags );
#endif
bool internalSpinLockShared( uint64_t &cmp, bool force );
void internalLockShared( uint64_t cmp, bool force );
bool internalSpinLockExclusive( uint64_t &cmp, thread_id threadId );
void cpuPause();
};
inline bool wbias_shared_mutex::is_shared()
{
return m_atomic.load( std::memory_order_relaxed ) & SHARERS_MASK;
}
inline bool wbias_shared_mutex::is_exclusive()
{
return m_atomic.load( std::memory_order_relaxed ) & EXCLUSIVE_FLAG_MASK;
}
inline bool wbias_shared_mutex::we_are_exclusive( thread_id threadId )
{
return (m_atomic.load( std::memory_order_relaxed ) & EXCLUSIVE_FLAG_MASK)
&& m_exclusiveId.load( std::memory_order_relaxed ) == threadId;
}
inline thread_id wbias_shared_mutex::get_exclusive_thread_id()
{
//std::atomic_thread_fence( std::memory_order_acquire );
return m_exclusiveId.load( std::memory_order_relaxed );
}
inline uint32_t wbias_shared_mutex::get_exclusive_recursion_count()
{
return m_exclusiveRecursionCount.load( std::memory_order_relaxed );
}
struct wbsm_lock
{
enum
{
UNLOCKED,
SHARED,
EXLUSIVE
};
wbsm_lock();
wbsm_lock( wbsm_lock const &other );
wbsm_lock( wbsm_lock &&other ) noexcept;
wbsm_lock( wbias_shared_mutex &mtx, bool lockShared = true, thread_id
threadId = thread_self() );
~wbsm_lock();
wbsm_lock &operator =( wbsm_lock const &other );
wbsm_lock &operator =( wbsm_lock &&other ) noexcept;
void lock_shared( wbias_shared_mutex &mtx );
void shared_to_exclusive( thread_id threadId = thread_self() );
void exclusive_to_shared( bool force = false );
void lock_exclusive( wbias_shared_mutex &mtx, thread_id threadId =
thread_self() );
void unlock();
void lock_preferred_shared( wbias_shared_mutex &mtx, thread_id threadId
= thread_self() );
bool is_locked() const;
bool is_shared() const;
bool is_exclusive() const;
thread_id get_exclusive_thread_id() const;
wbias_shared_mutex *get_mutex() const;
std::pair<int, wbias_shared_mutex *> get_state() const;
void set_state( int state, wbias_shared_mutex *pMtx );
private:
wbias_shared_mutex *m_mtx;
bool m_isShared;
thread_id m_threadId;
};
inline wbsm_lock::wbsm_lock()
{
m_mtx = nullptr;
}
inline wbsm_lock::wbsm_lock( wbsm_lock &&other ) noexcept :
m_mtx( other.m_mtx ),
m_isShared( other.m_isShared ),
m_threadId( other.m_threadId )
{
other.m_mtx = nullptr;
#if !defined(NDEBUG)
other.m_threadId = 0;
#endif
}
inline bool wbsm_lock::is_locked() const
{
return m_mtx != nullptr;
}
inline bool wbsm_lock::is_shared() const
{
assert(m_mtx);
return m_isShared;
}
inline bool wbsm_lock::is_exclusive() const
{
assert(m_mtx);
return !m_isShared;
}
inline thread_id wbsm_lock::get_exclusive_thread_id() const
{
return m_threadId;
}
inline wbias_shared_mutex *wbsm_lock::get_mutex() const
{
return m_mtx;
}
#if defined(__llvm__)
#pragma clang diagnostic pop
#endif
// source:
#include <utility>
#include "wbias_shared_mutex.h"
#include "xassert.h"
#include "exc_encapsulate.h"
#if defined(_MSC_VER)
#include <intrin.h>
#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
#include <immintrin.h>
#endif
#if defined(__llvm__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdangling-else"
#endif
char const *wbsm_exception::what() const noexcept
{
return m_what.c_str();
}
#if !defined(NDEBUG)
inline bool wbias_shared_mutex::check( std::uint64_t flags )
{
unsigned
sharers = (unsigned)(flags & MASK21),
waitingExclusive = (unsigned)((flags >> WAITING_EXCLUSIVE_BASE) & MASK21),
exclusiveFlag = (unsigned)((flags >> EXCLUSIVE_FLAG_BASE) & 1);
if( sharers && exclusiveFlag )
return false;
if( waitingExclusive && !exclusiveFlag && !sharers )
return false;
return true;
}
#endif
wbias_shared_mutex::wbias_shared_mutex( int16_t maxExclusiveSpinCount,
int16_t maxSharedSpinCount ) :
m_atomic( 0 ),
m_exclusiveId(),
m_exclusiveSpinCount( 0 ),
m_sharedSpinCount( 0 ),
m_maxExclusiveSpinCount( maxExclusiveSpinCount ),
m_maxSharedSpinCount( maxSharedSpinCount ),
m_releaseSharedSem( 0 ),
m_releaseExclusiveSem( false )
{
}
wbias_shared_mutex::~wbias_shared_mutex()
{
assert(!m_atomic);
}
// throws wbsm_exception if waiting sharers counter saturates
void wbias_shared_mutex::lock_shared( bool force )
{
using namespace std;
uint64_t cmp = m_atomic.load( memory_order_relaxed );
if( internalSpinLockShared( cmp, force ) )
return;
internalLockShared( cmp, force );
}
inline bool wbias_shared_mutex::internalSpinLockShared( std::uint64_t
&cmp, bool force )
{
using namespace std;
int16_t maxSharedSpinCount = m_maxSharedSpinCount.load(
memory_order_relaxed );
if( maxSharedSpinCount <= 0 )
return false;
int16_t sharedSpinCount = m_sharedSpinCount.load( memory_order_relaxed );
int32_t spinLimit = (int32_t)sharedSpinCount * 2 + 10;
spinLimit = spinLimit <= maxSharedSpinCount ? spinLimit :
maxSharedSpinCount;
int32_t spinCount = 0;
bool locked = false;
for( ; ; )
{
assert(check( cmp ));
if( !(cmp & (EXCLUSIVE_FLAG_MASK | (!force ? WAITING_EXCLUSIVE_MASK :
0))) )
if( (cmp & SHARERS_MASK) == SHARERS_MASK )
break;
else if( m_atomic.compare_exchange_weak( cmp, cmp + SHARER_VALUE,
memory_order_acquire, memory_order_relaxed ) )
{
locked = true;
break;
}
if( ++spinCount >= spinLimit )
break;
cpuPause();
cmp = m_atomic.load( memory_order_relaxed );
}
m_sharedSpinCount.store( sharedSpinCount + ((int16_t)spinCount -
sharedSpinCount) / 8, memory_order_relaxed );
return locked;
}
// throws wbsm_exception if waiting sharers counter saturates
inline void wbias_shared_mutex::internalLockShared( uint64_t cmp, bool
force )
{
using namespace std;
for( ; ; )
{
assert(check( cmp ));
if( !(cmp & (EXCLUSIVE_FLAG_MASK | (!force ? WAITING_EXCLUSIVE_MASK :
0))) )
if( (cmp & SHARERS_MASK) == SHARERS_MASK )
throw wbsm_exception( wbsm_exception::SHARER_COUNTER_SATURATED,
"wbsm-lock sharer-counter saturated" );
else if( m_atomic.compare_exchange_weak( cmp, cmp + SHARER_VALUE,
memory_order_acquire, memory_order_relaxed ) )
return;
else;
else
if( (cmp & SHARERS_MASK) + ((cmp & WAITING_SHARERS_MASK) >>
WAITING_SHARERS_BASE) >= SHARERS_MASK )
throw wbsm_exception( wbsm_exception::SHARER_COUNTER_SATURATED,
"wbsm-lock sharer-counter saturated" );
else if( m_atomic.compare_exchange_weak( cmp, cmp +
WAITING_SHARERS_VALUE, memory_order_relaxed, memory_order_relaxed ) )
{
exc_terminate( [&]() { m_releaseSharedSem.acquire(); } );
atomic_thread_fence( memory_order_acquire );
return;
}
}
}
// throws wbsm_exception if recursion-counter saturates
inline bool wbias_shared_mutex::internalSpinLockExclusive( std::uint64_t
&cmp, thread_id threadId )
{
using namespace std;
assert(check( cmp ));
if( (cmp & EXCLUSIVE_FLAG_MASK) && m_exclusiveId.load(
memory_order_relaxed ) == threadId )
{
uint32_t exclusiveRecursionCount = m_exclusiveRecursionCount.load(
memory_order_relaxed );
if( exclusiveRecursionCount == (uint32_t)-1 )
throw wbsm_exception( wbsm_exception::RECURSION_COUNTER_SATURATED,
"wbsm-lock recursion-counter saturated" );
m_exclusiveRecursionCount.store( exclusiveRecursionCount + 1,
memory_order_relaxed );
return true;
}
int16_t maxExclusiveSpinCount = m_maxExclusiveSpinCount.load(
memory_order_relaxed );
if( maxExclusiveSpinCount <= 0 )
return false;
int16_t exclusiveSpinCount = m_exclusiveSpinCount.load(
memory_order_relaxed );
int32_t spinLimit = (int32_t)exclusiveSpinCount * 2 + 10;
spinLimit = spinLimit <= maxExclusiveSpinCount ? spinLimit :
maxExclusiveSpinCount;
int32_t spinCount = 0;
bool locked = false;
for( ; ; )
{
assert(check( cmp ));
cmp = 0;
if( m_atomic.compare_exchange_weak( cmp, EXCLUSIVE_FLAG_MASK,
memory_order_acquire, memory_order_relaxed ) )
{
m_exclusiveId.store( threadId, memory_order_relaxed );
m_exclusiveRecursionCount.store( 0, memory_order_relaxed );
locked = true;
break;
}
if( ++spinCount >= spinLimit )
break;
cpuPause();
cmp = m_atomic.load( memory_order_relaxed );
}
m_exclusiveSpinCount.store( exclusiveSpinCount + ((int16_t)spinCount -
exclusiveSpinCount) / 8, memory_order_relaxed );
return locked;
}
bool wbias_shared_mutex::try_lock_shared( bool force )
{
using namespace std;
uint64_t cmp = m_atomic.load( memory_order_relaxed );
return internalSpinLockShared( cmp, force );
}
void wbias_shared_mutex::unlock_shared()
{
using namespace std;
for( uint64_t cmp = m_atomic.load( memory_order_relaxed ); ; )
{
assert(check( cmp ));
assert((cmp & SHARERS_MASK) >= SHARER_VALUE);
if( !(cmp & WAITING_EXCLUSIVE_MASK) || (cmp & SHARERS_MASK) !=
SHARER_VALUE )
if( m_atomic.compare_exchange_weak( cmp, cmp - SHARER_VALUE,
memory_order_release, memory_order_relaxed ) )
return;
else;
else
{
assert(!(cmp & EXCLUSIVE_FLAG_MASK));
if( m_atomic.compare_exchange_weak( cmp, (cmp - SHARER_VALUE -
WAITING_EXCLUSIVE_VALUE) | EXCLUSIVE_FLAG_MASK, memory_order_release,
memory_order_relaxed ) )
{
exc_terminate( [&]() { m_releaseExclusiveSem.release(1); });
return;
}
}
}
}
// throws wbsm_exception if waiting exclusive counter saturates
void wbias_shared_mutex::shared_to_exclusive( thread_id threadId )
{
using namespace std;
uint64_t cmp = m_atomic.load( memory_order_relaxed );
int16_t maxExclusiveSpinCount = m_maxExclusiveSpinCount.load(
memory_order_relaxed );
if( maxExclusiveSpinCount > 0 )
{
int16_t exclusiveSpinCount = m_exclusiveSpinCount.load(
memory_order_relaxed );
int32_t spinLimit = (int32_t)exclusiveSpinCount * 2 + 10;
spinLimit = spinLimit <= maxExclusiveSpinCount ? spinLimit :
maxExclusiveSpinCount;
int32_t spinCount = 0;
bool locked = false;
for( ; ; )
{
assert(check( cmp ));
assert((cmp & SHARERS_MASK) >= SHARER_VALUE);
cmp = (cmp & ~SHARERS_MASK) | 1;
if( m_atomic.compare_exchange_weak( cmp, (cmp & ~SHARERS_MASK) |
EXCLUSIVE_FLAG_MASK, memory_order_acquire, memory_order_relaxed ) )
{
m_exclusiveId.store( threadId, memory_order_relaxed );
m_exclusiveRecursionCount.store( 0, memory_order_relaxed );
locked = true;
break;
}
if( ++spinCount >= spinLimit )
break;
cpuPause();
cmp = m_atomic.load( memory_order_relaxed );
}
m_exclusiveSpinCount.store( exclusiveSpinCount + ((int16_t)spinCount -
exclusiveSpinCount) / 8, memory_order_relaxed );
if( locked )
return;
}
for( ; ; )
{
assert(check( cmp ));
assert((cmp & SHARERS_MASK) >= SHARER_VALUE);
if( (cmp & SHARERS_MASK) == SHARER_VALUE )
if( m_atomic.compare_exchange_weak( cmp, (cmp - SHARER_VALUE) |
EXCLUSIVE_FLAG_MASK, memory_order_acquire, memory_order_relaxed ) )
{
m_exclusiveId.store( threadId, memory_order_relaxed );
m_exclusiveRecursionCount.store( 0, memory_order_relaxed );
return;
}
else;
else
if( (cmp & WAITING_EXCLUSIVE_MASK) == WAITING_EXCLUSIVE_MASK )
throw wbsm_exception(
wbsm_exception::WATING_EXCLUSIVE_COUNTER_SATURATED, "wbsm-lock
waiting-exclusive-count saturated" );
else if( m_atomic.compare_exchange_weak( cmp, cmp - SHARER_VALUE +
WAITING_EXCLUSIVE_VALUE, memory_order_relaxed, memory_order_relaxed ) )
{
exc_terminate( [&]() { m_releaseExclusiveSem.acquire(); } );
atomic_thread_fence( memory_order_acquire );
m_exclusiveId.store( threadId, memory_order_relaxed );
m_exclusiveRecursionCount.store( 0, memory_order_relaxed );
return;
}
}
}
// throws wbsm_exception if waiting exclusive counter saturates
void wbias_shared_mutex::lock_exclusive( thread_id threadId )
{
using namespace std;
uint64_t cmp = m_atomic.load( memory_order_acquire );
if( internalSpinLockExclusive( cmp, threadId ) )
return;
for( ; ; )
{
assert(check( cmp ));
if( !(cmp & (EXCLUSIVE_FLAG_MASK | SHARERS_MASK)) )
if( m_atomic.compare_exchange_weak( cmp, cmp | EXCLUSIVE_FLAG_MASK,
memory_order_acquire, memory_order_relaxed ) )
{
m_exclusiveId.store( threadId, memory_order_relaxed );
m_exclusiveRecursionCount.store( 0, memory_order_relaxed );
return;
}
else;
else
if( (cmp & WAITING_EXCLUSIVE_MASK) == WAITING_EXCLUSIVE_MASK )
throw wbsm_exception(
wbsm_exception::WATING_EXCLUSIVE_COUNTER_SATURATED, "wbsm-lock
waiting-waiters-counter saturated" );
else if( m_atomic.compare_exchange_weak( cmp, cmp +
WAITING_EXCLUSIVE_VALUE, memory_order_relaxed, memory_order_relaxed ) )
{
exc_terminate( [&]() { m_releaseExclusiveSem.acquire(); } );
atomic_thread_fence( memory_order_acquire );
m_exclusiveId.store( threadId, memory_order_relaxed );
m_exclusiveRecursionCount.store( 0, memory_order_relaxed );
return;
}
}
}
bool wbias_shared_mutex::try_lock_exclusive( thread_id threadId )
{
using namespace std;
uint64_t cmp = m_atomic.load( memory_order_acquire );
return internalSpinLockExclusive( cmp, threadId );
}
// throws wbsm_exception if recursion-counter saturates
// throws wbsm_exception if waiting sharers counter saturates
bool wbias_shared_mutex::lock_preferred_shared( bool force, thread_id
threadId )
{
using namespace std;
uint64_t cmp = m_atomic.load( memory_order_acquire );
assert(check( cmp ));
if( (cmp & EXCLUSIVE_FLAG_MASK) && m_exclusiveId.load(
memory_order_relaxed ) == threadId )
{
uint32_t exclusiveRecursionCount = m_exclusiveRecursionCount.load(
memory_order_relaxed );
if( exclusiveRecursionCount == (uint32_t)-1 )
throw wbsm_exception( wbsm_exception::RECURSION_COUNTER_SATURATED,
"wbsm-lock recursion-counter saturated" );
m_exclusiveRecursionCount.store( exclusiveRecursionCount + 1,
memory_order_relaxed );
return false;
}
if( internalSpinLockShared( cmp, force ) )
return true;
internalLockShared( cmp, force );
return true;
}
void wbias_shared_mutex::unlock_exclusive( thread_id threadId )
{
using namespace std;
uint64_t cmp = m_atomic.load( memory_order_acquire );
assert(check( cmp ));
assert((cmp & EXCLUSIVE_FLAG_MASK) && m_exclusiveId == threadId);
if( uint32_t recCount; (cmp & EXCLUSIVE_FLAG_MASK)
&& (recCount = m_exclusiveRecursionCount.load( memory_order_relaxed ))
&& m_exclusiveId.load( memory_order_relaxed ) == threadId )
{
m_exclusiveRecursionCount.store( recCount - 1, memory_order_relaxed );
return;
}
m_exclusiveId.store( nullptr, memory_order_relaxed );
for( ; ; )
{
assert(check( cmp ));
assert(cmp & EXCLUSIVE_FLAG_MASK);
if( (cmp & WAITING_EXCLUSIVE_MASK) )
if( m_atomic.compare_exchange_weak( cmp, cmp -
WAITING_EXCLUSIVE_VALUE, memory_order_release, memory_order_relaxed ) )
{
exc_terminate( [&]() { m_releaseExclusiveSem.release( 1 ); } );
return;
}
else
continue;
if( (cmp & WAITING_SHARERS_MASK) )
{
uint64_t
waitingSharers = cmp & WAITING_SHARERS_MASK,
wakeups = waitingSharers >> WAITING_SHARERS_BASE;
if( m_atomic.compare_exchange_weak( cmp, (cmp & ~EXCLUSIVE_FLAG_MASK)
- waitingSharers + wakeups, memory_order_release, memory_order_relaxed ) )
{
exc_terminate( [&]() { m_releaseSharedSem.release( (unsigned)wakeups
); } );
return;
}
else
continue;
}
if( m_atomic.compare_exchange_weak( cmp, 0, memory_order_release,
memory_order_relaxed ) )
return;
}
}
// throws wbsm_exception if waiting sharers counter saturates
// (lock remains exclusive)
void wbias_shared_mutex::exclusive_to_shared( bool force )
{
using namespace std;
uint64_t cmp = m_atomic.load( std::memory_order_relaxed );
assert((cmp & EXCLUSIVE_FLAG_MASK) && !m_exclusiveRecursionCount);
thread_id recoverThreadId = m_exclusiveId.load( memory_order_relaxed );
m_exclusiveId.store( nullptr, memory_order_relaxed );
auto recoverThread = [&]( auto ) { m_exclusiveId.store(
recoverThreadId, memory_order_relaxed ); };
for( ; ; )
{
assert(check( cmp ));
uint64_t
waitingSharers = cmp & WAITING_SHARERS_MASK,
wakeups = waitingSharers >> WAITING_SHARERS_BASE;
if( !(cmp & WAITING_EXCLUSIVE_MASK) || force )
if( wakeups == SHARERS_MASK )
{
recoverThread( []() {} );
throw wbsm_exception( wbsm_exception::SHARER_COUNTER_SATURATED,
"wbsm-lock sharer-counter saturated" );
}
else if( m_atomic.compare_exchange_weak( cmp, (cmp &
~EXCLUSIVE_FLAG_MASK) - waitingSharers + wakeups + SHARER_VALUE,
memory_order_release, memory_order_relaxed ) )
{
if( wakeups )
exc_terminate( [&]() { m_releaseSharedSem.release(
(unsigned)wakeups ); } );
return;
}
else
continue;
if( wakeups == SHARERS_MASK )
{
recoverThread( []() {} );
throw wbsm_exception( wbsm_exception::SHARER_COUNTER_SATURATED,
"wbsm-lock sharer-counter saturated" );
}
if( m_atomic.compare_exchange_weak( cmp, cmp - WAITING_EXCLUSIVE_VALUE
+ WAITING_SHARERS_VALUE, memory_order_release, memory_order_relaxed ) )
{
exc_terminate( [&]()
{
m_releaseExclusiveSem.release( 1 );
m_releaseSharedSem.acquire();
atomic_thread_fence( memory_order_acquire );
} );
return;
}
}
}
inline void wbias_shared_mutex::cpuPause()
{
#if defined(_MSC_VER) || (defined(__GNUC__) || defined(__clang__)) &&
(defined(__x86_64__) || defined(__i386__))
_mm_pause();
#elif (defined(__GNUC__) || defined(__clang__)) && (defined(__arm__) ||
defined(__aarch64__))
__yield();
#else
#error "need platform-specific pause-instruction"
#endif
}
int16_t wbias_shared_mutex::max_exclusive_spin_count( int16_t max )
{
using namespace std;
int16_t maxExclusiveSpinCount = m_maxExclusiveSpinCount.load(
memory_order_relaxed );
m_maxExclusiveSpinCount.store( max );
return max;
}
int16_t wbias_shared_mutex::max_shared_spin_count( int16_t max )
{
using namespace std;
int16_t maxSharedSpinCount = m_maxSharedSpinCount.load(
memory_order_relaxed );
m_maxSharedSpinCount.store( max, memory_order_relaxed );
return max;
}
// may throw wbsm_exception if mutex-counter saturates
inline wbsm_lock::wbsm_lock( wbsm_lock const &other ) :
m_mtx( other.m_mtx ),
m_isShared( other.m_isShared )
{
if( m_isShared )
m_mtx->lock_shared();
else
m_mtx->lock_exclusive( other.m_threadId ),
m_threadId = m_mtx->get_exclusive_thread_id();
}
// may throw wbsm_exception if mutex-counter saturates
wbsm_lock::wbsm_lock( wbias_shared_mutex &mtx, bool lockShared,
thread_id threadId )
{
if( lockShared ) // [[likely]]
mtx.lock_shared();
else
mtx.lock_exclusive( threadId ),
m_threadId = mtx.get_exclusive_thread_id();
m_mtx = &mtx;
m_isShared = lockShared;
}
wbsm_lock::~wbsm_lock()
{
if( !m_mtx )
return;
if( m_isShared ) [[likely]]
m_mtx->unlock_shared();
else
m_mtx->unlock_exclusive( m_threadId );
}
// may throw wbsm_exception if mutex-counter saturates
wbsm_lock &wbsm_lock::operator =( wbsm_lock const &other )
{
if( m_mtx == other.m_mtx )
return *this;
unlock();
if( !other.m_mtx ) [[unlikely]]
return *this;
if( other.m_isShared )
other.m_mtx->lock_shared();
else
other.m_mtx->lock_exclusive( other.m_threadId ),
m_threadId = other.m_threadId;
m_mtx = other.m_mtx;
m_isShared = other.m_isShared;
return *this;
}
wbsm_lock &wbsm_lock::operator =( wbsm_lock &&other ) noexcept
{
if( m_mtx == other.m_mtx )
{
other.unlock();
return *this;
}
unlock();
m_mtx = other.m_mtx;
m_isShared = other.m_isShared;
m_threadId = other.m_threadId;
other.m_mtx = nullptr;
#if !defined(NDEBUG)
other.m_threadId = 0;
#endif
return *this;
}
// may throw wbsm_exception if mutex-counter saturates
void wbsm_lock::lock_shared( wbias_shared_mutex &mtx )
{
if( m_mtx == &mtx )
if( m_isShared ) [[likely]]
return;
else
{
m_mtx->exclusive_to_shared();
m_isShared = true;
#if !defined(NDEBUG)
m_threadId = 0;
#endif
return;
}
unlock();
mtx.lock_shared();
m_mtx = &mtx;
m_isShared = true;
#if !defined(NDEBUG)
m_threadId = 0;
#endif
}
// may throw wbsm_exception if mutex-counter saturates
void wbsm_lock::shared_to_exclusive( thread_id threadId )
{
assert(m_mtx);
if( m_isShared )
m_mtx->shared_to_exclusive( threadId ),
m_isShared = false;
m_threadId = threadId;
}
// may throw wbsm_exception if mutex-counter saturates
void wbsm_lock::exclusive_to_shared( bool force )
{
assert(m_mtx);
if( m_isShared )
return;
m_mtx->exclusive_to_shared( force );
m_isShared = true;
#if !defined(NDEBUG)
m_threadId = 0;
#endif
}
// may throw wbsm_exception if mutex-counter saturates
void wbsm_lock::lock_exclusive( wbias_shared_mutex &mtx, thread_id
threadId )
{
if( m_mtx == &mtx )
if( !m_isShared )
return;
else
{
m_mtx->shared_to_exclusive( threadId );
m_isShared = false;
m_threadId = threadId;
return;
}
unlock();
mtx.lock_exclusive( threadId );
m_mtx = &mtx;
m_isShared = false;
m_threadId = threadId;
}
void wbsm_lock::unlock()
{
if( !m_mtx ) [[unlikely]]
return;
if( m_isShared ) [[likely]]
m_mtx->unlock_shared();
else
m_mtx->unlock_exclusive( m_threadId );
m_mtx = nullptr;
}
// may throw wbsm_exception if mutex-counter saturates
void wbsm_lock::lock_preferred_shared( wbias_shared_mutex &mtx,
thread_id threadId )
{
if( m_mtx != &mtx )
m_isShared = mtx.lock_preferred_shared( threadId ),
m_mtx = &mtx;
m_threadId = threadId;
}
std::pair<int, wbias_shared_mutex *> wbsm_lock::get_state() const
{
if( !m_mtx ) [[unlikely]]
return { wbsm_lock::UNLOCKED, nullptr };
if( m_isShared ) [[likely]]
return { wbsm_lock::SHARED, m_mtx };
else
return { wbsm_lock::EXLUSIVE, m_mtx };
}
void wbsm_lock::set_state( int state, wbias_shared_mutex *pMtx )
{
if( state == wbsm_lock::UNLOCKED )
unlock();
else if( state == wbsm_lock::SHARED )
lock_shared( *pMtx );
else if( state == wbsm_lock::EXLUSIVE )
lock_exclusive( *pMtx );
}
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-06 20:15 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-06 18:44 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-07 04:54 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-07 00:18 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-07 06:27 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-07 10:44 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-07 18:39 +0200
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-07 17:27 +0000
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-07 11:06 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-07 12:20 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-07 12:52 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-07 12:58 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-07 13:31 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-08 13:20 -0700
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-07 21:13 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-23 12:35 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-07 20:24 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-07 20:53 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-08 07:37 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-08 14:54 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-09 05:44 +0200
Re: Thread-safe initialization of static objects Paavo Helde <eesnimi@osa.pri.ee> - 2023-09-09 17:54 +0300
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-09 19:26 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-09 13:42 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-09 21:15 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-09 13:37 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-10 10:57 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-10 06:51 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-10 17:46 +0200
Re: Thread-safe initialization of static objects Paavo Helde <eesnimi@osa.pri.ee> - 2023-09-10 19:08 +0300
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-10 18:15 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-10 11:13 -0700
Re: Thread-safe initialization of static objects Paavo Helde <eesnimi@osa.pri.ee> - 2023-09-10 21:38 +0300
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-11 04:02 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-10 20:33 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-10 21:50 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-11 15:44 +0200
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-11 15:49 +0200
Re: Thread-safe initialization of static objects Paavo Helde <eesnimi@osa.pri.ee> - 2023-09-11 18:20 +0300
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-11 18:34 +0200
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-16 17:06 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-20 01:14 -0700
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-20 13:32 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 11:51 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-10 09:32 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-10 11:14 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-10 18:50 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-10 21:42 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-11 23:58 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 14:02 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-18 20:11 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-10 11:12 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-10 18:05 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-09 11:49 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-09 21:17 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-09 12:20 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-09 21:55 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-09 12:59 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-09 13:00 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-10 10:58 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-10 11:05 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-10 11:08 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-09 12:21 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-09 13:41 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-10 10:59 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-10 11:09 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-10 11:12 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-11 16:29 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-11 12:41 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-12 04:28 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-11 22:39 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-12 11:44 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-12 11:33 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-12 20:43 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-12 15:55 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-12 15:56 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-13 11:53 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-13 16:23 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-14 11:10 +0200
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-14 14:37 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-14 16:52 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-15 21:39 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-16 10:03 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-16 05:41 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-16 16:07 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-16 13:23 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-16 19:38 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-16 11:46 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 05:45 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:25 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:30 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:42 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:44 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:50 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:52 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 12:01 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 21:12 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 12:57 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 07:05 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:21 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 05:08 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 22:01 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 10:43 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 12:30 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-20 05:33 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 20:49 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 22:16 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:51 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-17 19:20 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 21:29 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-17 19:36 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 07:06 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-18 17:30 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 19:36 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-18 20:15 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 05:10 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 22:01 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 10:46 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 02:08 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 11:36 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-19 07:48 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 14:11 +0200
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 15:41 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-19 16:41 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 19:50 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 12:06 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-19 18:42 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-20 05:38 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 20:50 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-20 07:53 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 12:03 -0700
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-19 13:49 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 16:14 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 12:07 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-19 18:45 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 15:50 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-20 05:35 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 21:01 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-20 07:54 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-20 15:18 +0200
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-20 14:20 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-20 16:31 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 11:53 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-20 22:23 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 18:46 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 18:56 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 19:07 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 19:11 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-20 09:48 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 11:54 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-20 12:36 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-20 14:02 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 21:12 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-21 04:46 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 21:52 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-21 01:23 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 21:13 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-21 01:04 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:13 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 05:41 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-20 18:46 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 05:42 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 21:24 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 09:47 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:19 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 04:28 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-21 23:14 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 06:39 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-22 07:31 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 14:15 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-22 18:31 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-23 06:38 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 23:12 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-23 09:40 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-23 11:39 -0700
Re: Thread-safe initialization of static objects Daniel <danielaparker@gmail.com> - 2023-09-24 05:57 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-21 07:36 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 14:40 +0200
Re: Thread-safe initialization of static objects David Brown <david.brown@hesbynett.no> - 2023-09-21 15:05 +0200
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 16:17 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:25 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 04:29 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 17:18 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-21 07:48 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 17:03 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:27 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:21 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-21 18:42 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 23:21 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-26 15:28 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-26 15:31 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 04:29 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 17:21 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 21:09 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-19 09:55 -0700
Re: Thread-safe initialization of static objects Paavo Helde <eesnimi@osa.pri.ee> - 2023-09-19 21:11 +0300
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 20:59 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 12:12 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-20 05:35 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 21:01 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-19 18:47 -0400
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-20 20:22 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 09:58 +0200
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 10:03 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-21 07:42 -0400
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-21 14:54 +0000
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-21 22:25 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 06:40 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-22 07:30 -0400
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-22 04:58 -0700
Re: Thread-safe initialization of static objects David Brown <david.brown@hesbynett.no> - 2023-09-22 16:27 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 10:41 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 19:50 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 17:24 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-22 21:58 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 20:33 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-21 01:38 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 11:02 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-21 02:59 -0700
Re: Thread-safe initialization of static objects David Brown <david.brown@hesbynett.no> - 2023-09-21 13:19 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-21 05:01 -0700
Re: Thread-safe initialization of static objects David Brown <david.brown@hesbynett.no> - 2023-09-21 15:03 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-21 07:30 -0700
Re: Thread-safe initialization of static objects David Brown <david.brown@hesbynett.no> - 2023-09-21 20:10 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-21 18:39 +0000
Re: Thread-safe initialization of static objects David Brown <david.brown@hesbynett.no> - 2023-09-22 12:35 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-21 14:44 -0700
Re: Thread-safe initialization of static objects David Brown <david.brown@hesbynett.no> - 2023-09-22 13:05 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-22 04:50 -0700
Re: Thread-safe initialization of static objects David Brown <david.brown@hesbynett.no> - 2023-09-22 17:01 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:41 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 14:37 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:43 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:40 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 14:34 +0200
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-21 14:56 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 17:04 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:56 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:38 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 04:30 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 10:37 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-21 22:21 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 04:31 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 10:39 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-22 22:15 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 20:22 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:21 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-17 15:47 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 07:07 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-18 17:34 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 19:43 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:23 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:22 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 05:11 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 22:02 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-21 22:50 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 06:41 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-22 05:15 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 08:52 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 10:30 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 19:35 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-22 18:14 +0000
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-22 03:03 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-22 22:23 -0400
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-17 19:49 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 07:16 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-18 17:53 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 20:08 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-18 18:15 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:26 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:25 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 13:02 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-16 16:34 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 05:57 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-17 10:46 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 18:02 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-17 13:40 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:04 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-17 14:26 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:32 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-17 14:35 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:46 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:43 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:27 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-17 18:49 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:51 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:53 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:59 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 13:23 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 07:09 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:38 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-17 19:22 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:39 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-17 15:50 -0400
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-17 13:37 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:06 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:27 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:43 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:48 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-17 15:41 -0400
Re: Thread-safe initialization of static objects Paavo Helde <eesnimi@osa.pri.ee> - 2023-09-18 00:29 +0300
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 07:18 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-18 08:13 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 14:37 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-18 21:04 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 05:14 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 22:06 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-18 18:07 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 20:14 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-18 19:42 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 05:16 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-19 04:05 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 22:08 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 22:11 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-19 05:50 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 23:19 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 23:20 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-19 07:59 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 10:49 +0200
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 10:47 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-19 16:53 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 19:53 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 12:17 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-20 05:36 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-19 21:08 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-20 05:37 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-20 03:52 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-19 21:03 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 12:36 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-20 21:09 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 14:15 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 05:46 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-20 21:25 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 09:51 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:34 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 04:32 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-21 21:18 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 04:33 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:56 -0700
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-18 14:59 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 17:19 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:57 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:49 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-17 14:37 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-17 20:49 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-17 11:52 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-17 15:43 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 07:18 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-18 08:11 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 14:45 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 13:01 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 13:01 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-17 16:11 -0400
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-17 16:01 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-18 07:20 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 12:48 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-18 20:30 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 05:17 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-18 22:14 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-19 10:50 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-21 11:29 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-20 20:42 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-21 09:49 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-21 22:58 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 06:44 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-22 05:34 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 08:54 +0200
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-22 17:56 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-22 20:12 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-22 18:38 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-23 06:41 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-22 22:59 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-23 08:34 +0200
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-23 08:35 +0200
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-23 10:44 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-23 11:20 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-23 14:23 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-23 11:38 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-23 11:53 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-24 02:22 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-23 19:59 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-23 20:08 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-24 10:08 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-24 07:15 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-24 13:33 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-24 08:01 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-24 14:10 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-24 12:47 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-25 01:10 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-24 21:15 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-25 10:00 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-25 07:15 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-25 14:43 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-25 19:29 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-26 06:36 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-26 04:52 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-26 11:11 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-26 07:23 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-26 14:36 +0200
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-26 15:23 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-26 17:31 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-26 13:02 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-26 18:38 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-26 13:04 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-26 07:23 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-26 14:37 +0200
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-26 15:24 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-26 17:33 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-26 13:07 -0700
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-09-26 18:40 -0400
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-28 21:46 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 14:02 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-29 23:57 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-30 08:07 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-30 14:06 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-01 07:00 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-10-01 13:18 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-01 21:03 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-10-01 15:45 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-02 05:50 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-10-02 07:56 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-02 14:00 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-10-02 08:04 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-02 15:44 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-10-02 12:18 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-10-01 19:19 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-02 05:51 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-10-02 22:24 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-10-02 19:39 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-10-02 23:30 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-10-02 21:24 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-03 06:19 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-10-04 22:03 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-05 04:40 +0200
Re: Thread-safe initialization of static objects Richard Damon <Richard@Damon-Family.org> - 2023-10-05 07:56 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-10-05 12:19 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-10-05 21:29 -0400
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-08 06:54 +0200
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-10-13 22:51 -0400
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-30 19:07 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-30 12:30 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-30 12:32 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-30 12:49 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-30 13:24 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-30 21:09 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-30 20:52 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-01 07:01 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-10-01 16:41 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-10-01 19:00 +0200
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-10-01 17:04 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-26 13:06 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-27 14:48 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-27 15:11 -0700
Re: Thread-safe initialization of static objects Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2023-09-28 20:56 -0400
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-27 15:15 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-27 15:25 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-27 15:56 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-27 15:20 -0700
Re: Thread-safe initialization of static objects scott@slp53.sl.home (Scott Lurndal) - 2023-09-27 22:37 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-27 15:49 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-27 15:59 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-27 16:06 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-27 16:10 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-27 16:15 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-27 22:27 +0000
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-27 15:57 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-27 16:38 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-28 04:07 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-28 13:24 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-28 04:46 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-28 14:46 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-28 06:09 -0700
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-28 14:34 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 14:03 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-29 05:07 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 14:15 +0200
Re: Thread-safe initialization of static objects Michael S <already5chosen@yahoo.com> - 2023-09-29 05:37 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 16:35 +0200
Re: Thread-safe initialization of static objects Tim Rentsch <tr.17687@z991.linuxsc.com> - 2023-09-29 08:03 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 17:08 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 11:44 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 20:54 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 11:57 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 12:00 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 21:09 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 12:26 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 12:27 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 21:31 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 12:34 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 21:37 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 12:41 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 21:30 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 12:36 -0700
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 12:38 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 21:43 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 13:09 -0700
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-29 22:14 +0200
Re: Thread-safe initialization of static objects "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-09-29 13:28 -0700
Re: Thread-safe initialization of static objects Kaz Kylheku <864-117-4973@kylheku.com> - 2023-09-29 20:44 +0000
Re: Thread-safe initialization of static objects Bonita Montero <Bonita.Montero@gmail.com> - 2023-09-30 11:15 +0200
(Thread has 665 articles, showing 500 — browse group in flat view)
csiph-web