Annotation of parser3/src/targets/apache13core/pa_threads.C, revision 1.3

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: 
1.3     ! paf         8: static const char * const IDENT_THREADS_C="$Date: 2003/07/24 11:31:25 $";
1.2       paf         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: