Commit graph

14 commits

Author SHA1 Message Date
Daniel Gibson
88b23611f9 Fix DEBUG_THREADS on FreeBSD
There was a typo in an #include, furthermore FreeBSD has no
pthread_getname_np equivalent.

I added Sys_GetThreadName() so the code is a bit cleaner.
2013-06-23 19:16:23 +02:00
Robert Beckebans
3023533e57 Added pthread priority code but it is disabled by default because it requires root privileges 2013-03-26 13:43:30 +01:00
Daniel Gibson
da9ab07e9c Refactor setting threadname on POSIX systems
* setting threadname is now done in a seperate function
* if setting the threadname fails, it just prints a warning now
  instead of terminating the game with a FatalError
2013-03-26 00:36:04 +01:00
Daniel Gibson
fe18a49303 Improve POSIX threading code
* setting threadname is now done in a seperate function so it's a bit
cleaner (it's different for every platform..)
* replace/refactor signaling code (based on my SDL threading branch and
  the old pthread signaling code from RB):
  - The interface is like on win32 now (Sys_Signal* functions instead of
    overwriting idSysSignal class)
  - created a custom signalHandle_t struct for that, which contains all
    needed information
  - Mimic Windows functions used in win32 implementation more closely,
    e.g. signal all waiting threads on manualReset signalRaise, count
    waiting threads etc. I'm pretty sure the behavior on Win32 and POSIX
    now is identical (as far as possible).
2013-03-25 22:05:02 +01:00
Daniel Gibson
9aa63e4074 Some timer-related improvements for POSIX
* idSysSignal::Wait should now handle timeouts > 1s better (or at all)
* Use clock_gettime for Sys_Milliseconds()
* Use CLOCK_MONOTONIC_RAW (and CLOCK_MONOTONIC as fallback if
  that's not available) for Sys_Milliseconds() and Sys_Microseconds()
  CLOCK_MONOTONIC can behave strange when NTP is used
* Small fixes in Sys_Microseconds(): use 64bit int to store time
  (like return type...), divide by 1000 (not 1000000) for nsec=>musec
2013-03-16 14:32:47 +01:00
Yamagi Burmeister
63b1816be6 Add an explicit cast to shut up g++47 on FreeBSD 2013-03-16 14:32:47 +01:00
Robert Beckebans
865ee792c0 Disabled usage of pthread_{get,set}_name because it does not work on all Linux systems. 2012-12-22 13:15:47 +01:00
Robert Beckebans
63f9d4000f First playable version on Linux. 2012-12-16 17:31:21 +01:00
Robert Beckebans
8b8cfe7d25 Small changes to pthreads. 2012-12-14 13:10:52 +01:00
Robert Beckebans
7b43a34f37 Changed idSysSignal pthread implementation to consider the manualReset parameter 2012-12-14 11:50:20 +01:00
Robert Beckebans
86deed26b8 Merged 64 bit fixes. 2012-12-12 12:11:55 +01:00
Robert Beckebans
baac8780a5 Fixed some bugs in idSysSignal. 2012-12-12 11:29:55 +01:00
Robert Beckebans
a1730fa430 Supplemented Linux backend with missing functions. -> [100%] Built target RBDoom3 on Kubuntu 12.10 2012-12-11 23:17:23 +01:00
Robert Beckebans
6d70f04cc9 Ported the Win32 threads to POSIX pthreads. 2012-12-09 01:55:59 +01:00