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: