diff options
author | ShadowNinja <shadowninja@minetest.net> | 2015-04-07 06:13:12 -0400 |
---|---|---|
committer | ShadowNinja <shadowninja@minetest.net> | 2015-08-23 22:04:06 -0400 |
commit | e4bff8be94c0db4f94e63ad448d0eeb869ccdbbd (patch) | |
tree | 7935586e79da5c8c7144e345a8c0fc1cda53beed /src/jthread/jsemaphore.h | |
parent | 6a1047d8c116f793890b63427d53f04ceca95d54 (diff) | |
download | minetest-e4bff8be94c0db4f94e63ad448d0eeb869ccdbbd.tar.gz minetest-e4bff8be94c0db4f94e63ad448d0eeb869ccdbbd.tar.bz2 minetest-e4bff8be94c0db4f94e63ad448d0eeb869ccdbbd.zip |
Clean up threading
* Rename everything.
* Strip J prefix.
* Change UpperCamelCase functions to lowerCamelCase.
* Remove global (!) semaphore count mutex on OSX.
* Remove semaphore count getter (unused, unsafe, depended on internal
API functions on Windows, and used a hack on OSX).
* Add `Atomic<type>`.
* Make `Thread` handle thread names.
* Add support for C++11 multi-threading.
* Combine pthread and win32 sources.
* Remove `ThreadStarted` (unused, unneeded).
* Move some includes from the headers to the sources.
* Move all of `Event` into its header (allows inlining with no new includes).
* Make `Event` use `Semaphore` (except on Windows).
* Move some porting functions into `Thread`.
* Integrate logging with `Thread`.
* Add threading test.
Diffstat (limited to 'src/jthread/jsemaphore.h')
-rw-r--r-- | src/jthread/jsemaphore.h | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/src/jthread/jsemaphore.h b/src/jthread/jsemaphore.h deleted file mode 100644 index 32e9bc2f2..000000000 --- a/src/jthread/jsemaphore.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -Minetest -Copyright (C) 2013 sapier, < sapier AT gmx DOT net > - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -#ifndef JSEMAPHORE_H_ -#define JSEMAPHORE_H_ - -#if defined(WIN32) -#include <windows.h> -#include <assert.h> -#define MAX_SEMAPHORE_COUNT 1024 -#elif defined(__MACH__) && defined(__APPLE__) -#include <pthread.h> -#include <mach/mach.h> -#include <mach/task.h> -#include <mach/semaphore.h> -#include <sys/semaphore.h> -#include <errno.h> -#include <time.h> -#else -#include <pthread.h> -#include <semaphore.h> -#endif - -class JSemaphore { -public: - JSemaphore(); - ~JSemaphore(); - JSemaphore(int initval); - - void Post(); - void Wait(); - bool Wait(unsigned int time_ms); - - int GetValue(); - -private: -#if defined(WIN32) - HANDLE m_hSemaphore; -#elif defined(__MACH__) && defined(__APPLE__) - semaphore_t m_semaphore; - int semcount; -#else - sem_t m_semaphore; -#endif -}; - - -#endif /* JSEMAPHORE_H_ */ |