mirror of https://github.com/libsdl-org/SDL.git
wasapi: Patched to compile with Clang.
This commit is contained in:
parent
4aa95c21bc
commit
29a0c689c9
|
|
@ -72,11 +72,11 @@ static void ManagementThreadMainloop(void)
|
|||
{
|
||||
SDL_LockMutex(ManagementThreadLock);
|
||||
ManagementThreadPendingTask *task;
|
||||
while (((task = SDL_AtomicGetPtr(&ManagementThreadPendingTasks)) != NULL) || !SDL_AtomicGet(&ManagementThreadShutdown)) {
|
||||
while (((task = SDL_AtomicGetPtr((void **) &ManagementThreadPendingTasks)) != NULL) || !SDL_AtomicGet(&ManagementThreadShutdown)) {
|
||||
if (!task) {
|
||||
SDL_WaitCondition(ManagementThreadCondition, ManagementThreadLock); // block until there's something to do.
|
||||
} else {
|
||||
SDL_AtomicSetPtr(&ManagementThreadPendingTasks, task->next); // take task off the pending list.
|
||||
SDL_AtomicSetPtr((void **) &ManagementThreadPendingTasks, task->next); // take task off the pending list.
|
||||
SDL_UnlockMutex(ManagementThreadLock); // let other things add to the list while we chew on this task.
|
||||
task->result = task->fn(task->userdata); // run this task.
|
||||
if (task->task_complete_sem) { // something waiting on result?
|
||||
|
|
@ -132,7 +132,7 @@ int WASAPI_ProxyToManagementThread(ManagementThreadTask task, void *userdata, in
|
|||
if (prev != NULL) {
|
||||
prev->next = pending;
|
||||
} else {
|
||||
SDL_AtomicSetPtr(&ManagementThreadPendingTasks, pending);
|
||||
SDL_AtomicSetPtr((void **) &ManagementThreadPendingTasks, pending);
|
||||
}
|
||||
|
||||
// task is added to the end of the pending list, let management thread rip!
|
||||
|
|
@ -208,7 +208,7 @@ static int InitManagementThread(void)
|
|||
return -1;
|
||||
}
|
||||
|
||||
SDL_AtomicSetPtr(&ManagementThreadPendingTasks, NULL);
|
||||
SDL_AtomicSetPtr((void **) &ManagementThreadPendingTasks, NULL);
|
||||
SDL_AtomicSet(&ManagementThreadShutdown, 0);
|
||||
ManagementThread = SDL_CreateThreadInternal(ManagementThreadEntry, "SDLWASAPIMgmt", 256 * 1024, &mgmtdata); // !!! FIXME: maybe even smaller stack size?
|
||||
if (!ManagementThread) {
|
||||
|
|
@ -240,7 +240,7 @@ static void DeinitManagementThread(void)
|
|||
ManagementThread = NULL;
|
||||
}
|
||||
|
||||
SDL_assert(SDL_AtomicGetPtr(&ManagementThreadPendingTasks) == NULL);
|
||||
SDL_assert(SDL_AtomicGetPtr((void **) &ManagementThreadPendingTasks) == NULL);
|
||||
|
||||
SDL_DestroyCondition(ManagementThreadCondition);
|
||||
SDL_DestroyMutex(ManagementThreadLock);
|
||||
|
|
|
|||
Loading…
Reference in New Issue