Annotation of parser3/src/targets/isapi/pa_threads.C, revision 1.22

1.1       parser      1: /** @file
                      2:        Parser: zero Mutex realization class.
                      3: 
1.22    ! moko        4:        Copyright (c) 2001-2017 Art. Lebedev Studio (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.19      moko        8: #include "pa_threads.h"
1.1       parser      9: 
1.22    ! moko       10: volatile const char * IDENT_PA_THREADS_C="$Id: pa_threads.C,v 1.21 2015/10/26 01:22:00 moko Exp $" IDENT_PA_THREADS_H;
1.4       paf        11: 
1.9       paf        12: #include <windows.h>
                     13: 
1.6       paf        14: const bool parser_multithreaded=true;
                     15: 
                     16: pa_thread_t pa_get_thread_id() {
1.9       paf        17:        return GetCurrentThreadId();
1.6       paf        18: }
1.1       parser     19: 
                     20: Mutex global_mutex;
                     21: 
1.6       paf        22: Mutex::Mutex() :
1.9       paf        23:        handle(reinterpret_cast<uint>(CreateMutex(NULL, FALSE, 0))) {
1.1       parser     24: }
                     25: 
                     26: Mutex::~Mutex() {
1.9       paf        27:        CloseHandle(reinterpret_cast<HANDLE>(handle));
1.1       parser     28: }
                     29: 
                     30: void Mutex::acquire() {
1.9       paf        31:     WaitForSingleObject(reinterpret_cast<HANDLE>(handle), INFINITE);
1.1       parser     32: }
                     33: 
                     34: void Mutex::release() {
1.9       paf        35:     ReleaseMutex(reinterpret_cast<HANDLE>(handle));
1.1       parser     36: }

E-mail: