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