ctmutex.cpp

来自「这是c++编程方面的名著的例子代码」· C++ 代码 · 共 89 行

CPP
89
字号
#include <string.h>#include "ctmutex.h"#include <iostream.h>mutex::mutex(void){    if(DosCreateMutexSem(NULL,&Mutex,0,0)){       SemException.message("Could Not Create Mutex");       throw SemException;    }     Duration = SEM_INDEFINITE_WAIT;}mutex::~mutex(void){    if(DosCloseMutexSem(Mutex)){       SemException.message("Could Not Destroy Mutex");       throw SemException;    }}void mutex::lock(void){      DosRequestMutexSem(Mutex,Duration);}void mutex::unlock(void){    DosReleaseMutexSem(Mutex);}named_mutex::named_mutex(void){   if(DosCreateMutexSem(NULL,&Mutex,0,0)){       SemException.message("Could Not Create Mutex");       throw SemException;    }    Duration = SEM_INDEFINITE_WAIT;}named_mutex::named_mutex(char *MName,int Owned){    strcpy(MutexName,MName);    InitiallyOwned = Owned;    if(DosCreateMutexSem(MName,&Mutex,0,InitiallyOwned)){       SemException.message("Could Not Create Mutex");       throw SemException;    }    Duration = SEM_INDEFINITE_WAIT;}named_mutex::named_mutex(string MName){ unsigned long RC; strcpy(MutexName,MName.c_str());    InitiallyOwned = 0;    Mutex = (HMTX)NULL;    RC = DosOpenMutexSem(MutexName,&Mutex);    if(RC){       cout << RC << endl;       SemException.message("Could Not open Mutex");       throw SemException;    }    Duration = SEM_INDEFINITE_WAIT;
}unsigned long named_mutex::lockDuration(void){    return(Duration);}void named_mutex::lockDuration(unsigned long Dur)
{
    Duration = Dur;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?