- 255 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 02:15:45 ]
- pthreadのPTHREAD_MUTEX_INITIALIZERのように、
win32のCRITICAL_SECTIONを静的に初期化する方法はありますか。 現在は仕方が無いので static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; で済むところを static pthread_mutex_t mutex; static int initialized; static int lock; if (!initialized && InterlockedIncrement(&lock) == 1) { pthread_mutex_init(&mutex, 0); initialized = 1; } などと書きました。 なお、↑のコードでは、とりあえず #define pthread_mutex_t CRITICAL_SECTION #define pthread_mutex_init(A,B) InitializeCriticalSection(A) #define pthread_mutex_lock(A) (EnterCriticalSection(A), 0) #define pthread_mutex_unlock(A) (LeaveCriticalSection(A), 0) #define pthread_mutex_destroy(A) DeleteCriticalSection(A) などと定義しています(極めてうさんくさいですが)。
|

|