aboutsummaryrefslogtreecommitdiffstats
path: root/src/thread (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-08-25thread/{Mutex,Cond}: remove obsolete commentsMax Kellermann2-6/+2
2015-08-25thread/Posix{Mutex,Cond}: use "constexpr" only with glibcMax Kellermann2-16/+16
Apparently all other C libraries are not compatible with "constexpr". Those which are not will get a performance penalty, but at least they work at all.
2015-01-21thread/Name: include stdio.h if HAVE_PRCTLMax Kellermann1-1/+4
Caused a build failure with uClibc because snprintf() was not available.
2015-01-06thread/Name: disable pthread_setname_np() on NetBSDMax Kellermann1-2/+6
NetBSD's pthread_setname_np() prototype is incompatible with the rest of the world, and it requires to pass the string argument as a non-const pointer. Instead of working around this misdesign, I hereby disable the feature on NetBSD.
2015-01-06thread/Name: enable FormatThreadName() with prctl()Max Kellermann1-1/+5
Add macro HAVE_THREAD_NAME which is set when any method to set the thread name is available. Use that macro in FormatThreadName() instead of just checking for HAVE_PTHREAD_SETNAME_NP.
2015-01-06thread/Name: indent preprocessor commandsMax Kellermann1-3/+3
2015-01-01Copyright year 2015Max Kellermann5-5/+5
2014-12-08thread/Id: drop "::" prefix before pthread function namesMax Kellermann1-2/+2
The "::" to explicitly refer to the global namespace appeared like a good idea in C++, but it breaks with C libraries that implement standard functions using macros (e.g. musl).
2014-09-13thread/Posix{Cond,Mutex}: don't ues PTHREAD_*_INITIALIZER on NetBSDMax Kellermann2-0/+28
On NetBSD, PTHREAD_MUTEX_INITIALIZER and PTHREAD_COND_INITIALIZER are not compatible with C++11 "constexpr" (see Mantis ticket 0004110). As a workaround, don't ues "constexpr", and use the functions pthread_mutex_init(), pthread_mutex_destroy(), pthread_cond_init() and pthread_cond_destroy() instead. This adds some runtime overhead, but is portable to POSIX implementations that have awkward initializer macros.
2014-07-02thread/{Mutex,Cond}: relicense to BSD-2Max Kellermann6-38/+58
2014-07-02thread/GLib{Mutex,Cond}: remove obsolete classesMax Kellermann2-178/+0
2014-05-31thread/Util: relicense to BSD-2Max Kellermann1-15/+25
2014-03-16thread/Thread: make the destructor non-virtualMax Kellermann1-1/+1
The class does not have any virtual methods, and thus the (debug-only) destructor does not need to be virtual.
2014-03-01thread/Name: fall back to prctl()Max Kellermann1-0/+4
2014-03-01java: new helper library for the Android portMax Kellermann1-0/+9
2014-02-18Thread/Util: use __NR_ioprio_set instead of SYS_ioprio_setMax Kellermann1-1/+1
Bionic doesn't have the SYS_* macros.
2014-02-18Thread/Util: make SCHED_RESET_ON_FORK optionalMax Kellermann1-1/+7
Use it if it exists, but don't insist if the C library is poor (e.g. Bionic/Android).
2014-02-18thread/Posix{Mutex,Cond}: disable "constexpr" on AndroidMax Kellermann2-2/+8
Bionic's pthread declarations are non-literal.
2014-01-30Main, OutputThread: increase kernel timer slack (Linux)Max Kellermann1-0/+54
Allows the kernel to combine timer wakeups with other processes, reducing power usage.
2014-01-28thread/Name: implementation for Mac OS XMax Kellermann1-0/+4
pthread_setname_np() doesn't have the "thread" argument on OS X.
2014-01-23thread/Name: set thread namesMax Kellermann1-0/+51
For debugging.
2014-01-23thread/Util: set the SCHED_RESET_ON_FORK flag in SetThreadRealtime()Max Kellermann1-1/+1
2014-01-14OutputThread: use real-time priorityMax Kellermann1-0/+13
2014-01-14UpdateGlue: let the update thread run at "idle" priorityMax Kellermann1-0/+72
The update thread should not affect the rest of the system, therefore set "idle" priority, and let it only run when nobody else is using the resources.
2014-01-13copyright year 2014Max Kellermann5-5/+5
2013-10-17Thread/Thread: replacement library for GThreadMax Kellermann2-0/+222
2013-10-17thread/{Cond,Mutex}: use "class" instead of "typedef"Max Kellermann2-5/+4
Allows forward-declaration.
2013-10-15gcc.h: rename to Compiler.hMax Kellermann1-1/+1
2013-08-10thread/Id: new class replacing GThread pointersMax Kellermann1-0/+99
Remove a GLib dependencies from class EventLoop and DatabaseLock.
2013-04-17thread/Cond: add method timed_wait()Max Kellermann2-2/+19
2013-01-11thread/{Mutex,Cond}: new backend for WIN32Max Kellermann4-4/+135
Use CRITICAL_SECTION and CONDITION_VARIABLE. This requires Windows Vista or newer. It fixes problems with GLib threading objects that were implicitly created by static constructors before g_thread_init().
2013-01-10thread/Cond: new wrapper for pthread_cond_t or GCondMax Kellermann5-0/+189
2013-01-10thread/GLibMutex: new Mutex implementationMax Kellermann2-19/+44
Switch WIN32 to this implementation to be able to use condition variables, which is impossible with CriticalSection.
2013-01-10thread/PosixMutex: fix indentMax Kellermann1-13/+13
2013-01-07thread/Mutex: don't use std::mutexMax Kellermann2-8/+68
Use a custom pthread_mutex_t wrapper because std::mutex adds overhead.
2013-01-04Mutex: new wrapper for std::mutex, replaces GMutexMax Kellermann2-0/+117