git-svn-id: svn://db.shs.com.ru/pip@429 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -43,7 +43,7 @@
|
||||
|
||||
PRIVATE_DEFINITION_START(PIMutex)
|
||||
#ifdef WINDOWS
|
||||
void *
|
||||
HANDLE
|
||||
#else
|
||||
pthread_mutex_t
|
||||
#endif
|
||||
@@ -66,7 +66,10 @@ PIMutex::~PIMutex() {
|
||||
|
||||
void PIMutex::lock() {
|
||||
#ifdef WINDOWS
|
||||
WaitForSingleObject(PRIVATE->mutex, INFINITE);
|
||||
// std::cout << (ullong)PRIVATE->mutex << "locking..." << std::endl;
|
||||
// DWORD wr =
|
||||
WaitForSingleObject(PRIVATE->mutex, INFINITE);
|
||||
// std::cout << (ullong)PRIVATE->mutex << " lock wr=" << wr << std::endl;
|
||||
#else
|
||||
pthread_mutex_lock(&(PRIVATE->mutex));
|
||||
#endif
|
||||
@@ -76,7 +79,10 @@ void PIMutex::lock() {
|
||||
|
||||
void PIMutex::unlock() {
|
||||
#ifdef WINDOWS
|
||||
ReleaseMutex(PRIVATE->mutex);
|
||||
// BOOL wr =
|
||||
// ReleaseMutex(PRIVATE->mutex);
|
||||
SetEvent(PRIVATE->mutex);
|
||||
// std::cout << (ullong)PRIVATE->mutex << " unlock wr=" << wr << std::endl;
|
||||
#else
|
||||
pthread_mutex_unlock(&(PRIVATE->mutex));
|
||||
#endif
|
||||
@@ -97,6 +103,7 @@ bool PIMutex::tryLock() {
|
||||
|
||||
|
||||
bool PIMutex::isLocked() const {
|
||||
// std::cout << "test " << (ullong)PRIVATE->mutex << std::endl;
|
||||
return locked;
|
||||
}
|
||||
|
||||
@@ -104,7 +111,9 @@ bool PIMutex::isLocked() const {
|
||||
void PIMutex::init() {
|
||||
if (inited_) destroy();
|
||||
#ifdef WINDOWS
|
||||
PRIVATE->mutex = CreateMutex(0, false, 0);
|
||||
// PRIVATE->mutex = CreateMutex(NULL, FALSE, NULL);
|
||||
PRIVATE->mutex = CreateEvent(NULL, FALSE, TRUE, NULL);
|
||||
// std::cout << "create " << (ullong)PRIVATE->mutex << std::endl;
|
||||
#else
|
||||
pthread_mutexattr_t attr;
|
||||
memset(&attr, 0, sizeof(attr));
|
||||
@@ -122,6 +131,7 @@ void PIMutex::init() {
|
||||
void PIMutex::destroy() {
|
||||
if (inited_) {
|
||||
#ifdef WINDOWS
|
||||
// std::cout << "destroy " << (ullong)PRIVATE->mutex << std::endl;
|
||||
if (PRIVATE->mutex) CloseHandle(PRIVATE->mutex);
|
||||
PRIVATE->mutex = 0;
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user