diff options
author | kwolekr <mirrorisim@gmail.com> | 2013-02-13 22:43:15 -0500 |
---|---|---|
committer | kwolekr <mirrorisim@gmail.com> | 2013-02-25 22:56:18 -0500 |
commit | b9d8e59bbf727fcc1a073bbf27e5d1703b9490ef (patch) | |
tree | 629dba18aab743e66b88858f5385cf4ba36d0328 /src/jthread | |
parent | 6d0ea26c2d62c3774ff384cf1bfc2a3372b49a3b (diff) | |
download | minetest-b9d8e59bbf727fcc1a073bbf27e5d1703b9490ef.tar.gz minetest-b9d8e59bbf727fcc1a073bbf27e5d1703b9490ef.tar.bz2 minetest-b9d8e59bbf727fcc1a073bbf27e5d1703b9490ef.zip |
Add emerge.cpp, initial EmergeThread changes
- Neatly placed all emerge related code into a new file, emerge.cpp
- Greatly cleaned up the code in EmergeThread::Thread()
- Reworked Emerge queue. Now an actual std::queue of v3s16 block positions
- Removed the completely unnecessary map of peer ids requesting blocks
Diffstat (limited to 'src/jthread')
-rw-r--r-- | src/jthread/jmutex.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/jthread/jmutex.h b/src/jthread/jmutex.h index 9ce013096..6675162a5 100644 --- a/src/jthread/jmutex.h +++ b/src/jthread/jmutex.h @@ -67,4 +67,54 @@ private: bool initialized; }; +#ifdef _WIN32 + +class Event { + HANDLE hEvent; + +public: + Event() { + hEvent = CreateEvent(NULL, 0, 0, NULL); + } + + ~Event() { + CloseHandle(hEvent); + } + + void wait() { + WaitForSingleObject(hEvent, INFINITE); + } + + void signal() { + SetEvent(hEvent); + } +} + +#else + +#include <semaphore.h> + +class Event { + sem_t sem; + +public: + Event() { + sem_init(&sem, 0, 0); + } + + ~Event() { + sem_destroy(&sem); + } + + void wait() { + sem_wait(&sem); + } + + void signal() { + sem_post(&sem); + } +}; + +#endif + #endif // JMUTEX_H |