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