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