📄 ctmutex.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -