21 : _mutex()
22{
23 ::pthread_mutexattr_t attr;
24 int sysError;
25 if ( (sysError = ::pthread_mutexattr_init( &attr )) == 0 )
26 if ( (sysError = ::pthread_mutex_init( &_mutex, &attr )) == 0 )
27 {
28 ::pthread_mutexattr_destroy( &attr );
29 return;
30 }
31 throwExceptionExplicit( OptionError, "mutex initialization failed",
32 strerror(sysError) );
33}
34#else
35#if defined(_VISUALC_) && defined(_MT)
36
37 : _mutex()
38{
39 SECURITY_ATTRIBUTES security;
40
41
42 security.nLength = sizeof(security);
43 security.lpSecurityDescriptor = NULL;
44 security.bInheritHandle = TRUE;
45
46
47 _mutex.id = ::CreateSemaphore(&security, 1, MAXSEMLEN, NULL);
48 if ( _mutex.id != NULL )
49 return;
50 throwExceptionExplicit( OptionError, "mutex initialization failed" );
51}
52#else
53
54{
55}