version 0.5.0_alpha

git-svn-id: svn://db.shs.com.ru/pip@8 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
2015-03-10 10:13:18 +00:00
parent b1f651ab62
commit c11bc3b3b8
697 changed files with 18150 additions and 18839 deletions

View File

@@ -4,7 +4,7 @@
/*
PIP - Platform Independent Primitives
Mutex
Copyright (C) 2014 Ivan Pelipenko peri4ko@gmail.com
Copyright (C) 2015 Ivan Pelipenko peri4ko@gmail.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -38,36 +38,16 @@ public:
//! \brief Lock mutex
//! \details If mutex is unlocked it set to locked state and returns immediate.
//! If mutex is already locked function blocks until mutex will be unlocked
void lock() {
#ifdef WINDOWS
WaitForSingleObject(mutex, INFINITE);
#else
pthread_mutex_lock(&mutex);
#endif
}
void lock();
//! \brief Unlock mutex
//! \details In any case this function returns immediate
void unlock() {
#ifdef WINDOWS
ReleaseMutex(mutex);
#else
pthread_mutex_unlock(&mutex);
#endif
}
void unlock();
//! \brief Try to lock mutex
//! \details If mutex is unlocked it set to locked state and returns "true" immediate.
//! If mutex is already locked function returns immediate an returns "false"
bool tryLock() {
#ifdef WINDOWS
return (WaitForSingleObject(mutex, 0) == WAIT_OBJECT_0);
#else
return (pthread_mutex_trylock(&mutex) == 0);
#endif
}
bool tryLock();
private:
#ifdef WINDOWS