Annotation of parser3/src/targets/apache13/pa_threads.C, revision 1.11.2.1.2.1
1.1 parser 1: /** @file
2: Parser: Mutex realization class.
3:
1.11.2.1 paf 4: Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)
1.7 paf 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.9 paf 6: */
1.1 parser 7:
1.11.2.1.2.1! paf 8: static const char* IDENT_THREADS_C="$Date: 2003/01/31 12:34:40 $";
1.1 parser 9:
10: #include "pa_threads.h"
11:
12: Mutex global_mutex;
13:
1.11.2.1.2.1! paf 14: #ifdef WIN32
! 15:
! 16: #include <windows.h>
1.1 parser 17:
1.2 paf 18: const bool parser_multithreaded=true;
19:
1.4 paf 20: pa_thread_t pa_get_thread_id() {
1.11.2.1.2.1! paf 21: return GetCurrentThreadId();
1.4 paf 22: }
23:
1.11.2.1.2.1! paf 24: Mutex::Mutex() :
! 25: handle(reinterpret_cast<uint>(CreateMutex(NULL, FALSE, 0))) {
1.1 parser 26: }
27:
28: Mutex::~Mutex() {
1.11.2.1.2.1! paf 29: CloseHandle(reinterpret_cast<HANDLE>(handle));
1.1 parser 30: }
31:
32: void Mutex::acquire() {
1.11.2.1.2.1! paf 33: WaitForSingleObject(reinterpret_cast<HANDLE>(handle), INFINITE);
1.1 parser 34: }
35:
36: void Mutex::release() {
1.11.2.1.2.1! paf 37: ReleaseMutex(reinterpret_cast<HANDLE>(handle));
1.1 parser 38: }
39:
40: #else
1.2 paf 41:
42: const bool parser_multithreaded=false;
1.4 paf 43:
1.5 paf 44: pa_thread_t pa_get_thread_id() { return 1; }
1.1 parser 45:
46: Mutex::Mutex() {}
47: Mutex::~Mutex() {}
48: void Mutex::acquire() {}
49: void Mutex::release() {}
50:
51: #endif
E-mail: