Commit Graph

117 Commits

Author SHA1 Message Date
Sam Lantinga 741aaf4c80 Added a note on how to allow non-root applications to increase their thread priority on Linux 2016-10-12 22:34:54 -07:00
Sam Lantinga 27d4f09929 Implemented SDL_GetHintBoolean() to make it easier to check boolean hints 2016-10-07 23:40:44 -07:00
Ethan Lee 92d700f199 SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING 2016-09-30 09:26:57 -04:00
Sam Lantinga 9f854cdbe0 Fixed bug 3388 - Fail to build src/thread/windows/SDL_systhread.c on MinGW 4.9.3
Vitaly Novichkov

Line 124
====================================================================
const DWORD flags = thread->stacksize ? STACK_SIZE_PARAM_IS_A_RESERVATION : 0;
====================================================================

Error of compiler:
====================================================================
  CC     build/SDL_systhread.lo
src/thread/windows/SDL_systhread.c: In function 'SDL_SYS_CreateThread':
src/thread/windows/SDL_systhread.c:124:45: error: 'STACK_SIZE_PARAM_IS_A_RESERVA
TION' undeclared (first use in this function)
     const DWORD flags = thread->stacksize ? STACK_SIZE_PARAM_IS_A_RESERVATION :
 0;
                                             ^
src/thread/windows/SDL_systhread.c:124:45: note: each undeclared identifier is r
eported only once for each function it appears in
make: *** [build/SDL_systhread.lo] Error 1
====================================================================

Fixing when I adding into begin of the file:
====================================================================
#ifndef STACK_SIZE_PARAM_IS_A_RESERVATION
#define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
#endif
====================================================================
2016-10-01 10:08:34 -07:00
Philipp Wiesemann 72dc8784b3 PSP: Fixed compile error. 2016-04-14 21:09:45 +02:00
Ryan C. Gordon 9b9ca093c7 windows: created threads' stack sizes should be reserved, not committed. 2016-04-12 18:12:04 -04:00
Ryan C. Gordon c61675dc5d threads: Move SDL's own thread creation to a new internal API.
This allows us to set an explicit stack size (overriding the system default
and the global hint an app might have set), and remove all the macro salsa
for dealing with _beginthreadex and such, as internal threads always set those
to NULL anyhow.

I've taken some guesses on reasonable (and tiny!) stack sizes for our
internal threads, but some of these might turn out to be too small in
practice and need an increase. Most of them are simple functions, though.
2016-04-12 16:45:10 -04:00
Ryan C. Gordon 7ae2951fca threads: Handle SDL_HINT_THREAD_STACK_SIZE at top level, implement elsewhere. 2016-04-12 14:38:50 -04:00
Ryan C. Gordon 481a21b025 Windows: Just use WaitForSingleObjectEx() everywhere.
(It's supported on WinXP, no reason to have an #ifdef here...I think.)
2016-02-21 17:21:29 -05:00
Ryan C. Gordon 9fd4d4dd39 Windows: let threads be named in the debugger.
We now only raise the magic exception that names the thread when
IsDebuggerPresent() returns true. In such a case, Visual Studio will
catch the exception, set the thread name, and let the debugged process
continue normally. If the debugger isn't running, we don't raise an exception
at all.

Setting the name is a debugger trick; if the debugger isn't running, the name
won't be set if attached later in any case, so this doesn't lose functionality.

This lets this code work without assembly code, on win32 and win64, and
across various compilers.

The only "gotcha" is that if you have something attached that looks like a
debugger but doesn't respect this magic exception trick, the process will
likely crash, but that's probably a deficiency of the attached program.

Fixes Bugzilla #2089.
2016-02-21 17:05:25 -05:00
Sam Lantinga 42065e785d Updated copyright to 2016 2016-01-02 10:10:34 -08:00
Ryan C. Gordon 696cd7975c NetBSD: fixed issues with cpuinfo and pthread_setname_np (thanks, Thomas!).
Fixes Bugzilla #3176.
2015-12-29 02:32:47 -05:00
David Ludwig fa2d5ab497 WinRT: bug-fix - SDL_SetThreadPriority() didn't work on WinRT 8.x platforms
WinRT 8.0 (Phone and non-Phone) didn't offer an API to set an already-created
thread's priority.  WinRT 8.1 offered this API, along with several other
Win32 thread functions that were previously unavailable (in WinRT).

This change makes WinRT 8.1+ platforms use SDL's Win32 backend.
2015-11-26 13:51:03 -05:00
David Ludwig a5a80cd033 WinRT: fixed crash in SDL_CondWaitTimeout, when using Win10's MSVC runtime 2015-11-15 13:04:42 -05:00
Philipp Wiesemann 98986f39e9 Removed not needed call to pthread_attr_getstacksize() for SDL_CreateThread(). 2015-08-15 21:21:29 +02:00
Philipp Wiesemann 2919905620 PSP: Fixed error handling in SDL_SemWaitTimeout().
Signed integers were converted to unsigned before being checked if smaller 0.

Found by Cppcheck.
2015-07-15 21:11:24 +02:00
Philipp Wiesemann 0e45984fa0 Fixed crash if initialization of EGL failed but was tried again later.
The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly
uninitialized data structure if loading the library first failed. A later try to
use EGL then skipped initialization and assumed it was previously successful
because the data structure now already existed. This led to at least one crash
in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was
dereferenced to make a call to eglBindAPI().
2015-06-21 17:33:46 +02:00