Annotation of parser3/src/targets/isapi/pa_threads.C, revision 1.18
1.1 parser 1: /** @file
2: Parser: zero Mutex realization class.
3:
1.17 paf 4: Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com)
1.8 paf 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.11 paf 6: */
1.1 parser 7:
1.18 ! paf 8: static const char * const IDENT_THREADS_C="$Date: 2006/04/09 12:25:04 $";
1.1 parser 9:
10: #include "pa_threads.h"
1.4 paf 11:
1.18 ! paf 12: #define WINVER 0x0400
1.9 paf 13: #include <windows.h>
14:
1.6 paf 15: const bool parser_multithreaded=true;
16:
17: pa_thread_t pa_get_thread_id() {
1.9 paf 18: return GetCurrentThreadId();
1.6 paf 19: }
1.1 parser 20:
21: Mutex global_mutex;
22:
1.6 paf 23: Mutex::Mutex() :
1.9 paf 24: handle(reinterpret_cast<uint>(CreateMutex(NULL, FALSE, 0))) {
1.1 parser 25: }
26:
27: Mutex::~Mutex() {
1.9 paf 28: CloseHandle(reinterpret_cast<HANDLE>(handle));
1.1 parser 29: }
30:
31: void Mutex::acquire() {
1.9 paf 32: WaitForSingleObject(reinterpret_cast<HANDLE>(handle), INFINITE);
1.1 parser 33: }
34:
35: void Mutex::release() {
1.9 paf 36: ReleaseMutex(reinterpret_cast<HANDLE>(handle));
1.1 parser 37: }
E-mail: