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

1.1       parser      1: /** @file
                      2:        Parser: zero Mutex realization class.
                      3: 
1.7       paf         4:        Copyright (c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com)
1.8       paf         5:        Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.1       parser      6: 
1.9     ! paf         7:        $Id: pa_threads.C,v 1.8 2002/02/08 08:30:18 paf Exp $
1.1       parser      8: */
                      9: 
                     10: #include "pa_threads.h"
1.4       paf        11: 
1.9     ! paf        12: #include <windows.h>
        !            13: 
1.4       paf        14: /// @test really?
1.6       paf        15: const bool parser_multithreaded=true;
                     16: 
                     17: pa_thread_t pa_get_thread_id() {
1.9     ! paf        18:        return GetCurrentThreadId();
1.6       paf        19: }
1.1       parser     20: 
                     21: Mutex global_mutex;
                     22: 
1.6       paf        23: Mutex::Mutex() :
1.9     ! paf        24:        handle(reinterpret_cast<uint>(CreateMutex(NULL, FALSE, 0))) {
1.1       parser     25: }
                     26: 
                     27: Mutex::~Mutex() {
1.9     ! paf        28:        CloseHandle(reinterpret_cast<HANDLE>(handle));
1.1       parser     29: }
                     30: 
                     31: void Mutex::acquire() {
1.9     ! paf        32:     WaitForSingleObject(reinterpret_cast<HANDLE>(handle), INFINITE);
1.1       parser     33: }
                     34: 
                     35: void Mutex::release() {
1.9     ! paf        36:     ReleaseMutex(reinterpret_cast<HANDLE>(handle));
1.1       parser     37: }

E-mail: