mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 04:20:27 +00:00
Create thread_sleeping variable
This commit is contained in:
parent
9e47d3097b
commit
85aae0d0b5
@ -40,6 +40,7 @@ typedef struct data_runloop
|
|||||||
bool inited;
|
bool inited;
|
||||||
|
|
||||||
#ifdef HAVE_THREADS
|
#ifdef HAVE_THREADS
|
||||||
|
bool thread_sleeping;
|
||||||
bool thread_inited;
|
bool thread_inited;
|
||||||
unsigned thread_code;
|
unsigned thread_code;
|
||||||
bool alive;
|
bool alive;
|
||||||
@ -169,8 +170,12 @@ static void data_thread_loop(void *data)
|
|||||||
|
|
||||||
data_runloop_iterate(true);
|
data_runloop_iterate(true);
|
||||||
|
|
||||||
while (!rarch_main_data_active())
|
if (!rarch_main_data_active())
|
||||||
scond_wait(runloop->cond, runloop->lock);
|
{
|
||||||
|
runloop->thread_sleeping = true;
|
||||||
|
while(runloop->thread_sleeping)
|
||||||
|
scond_wait(runloop->cond, runloop->lock);
|
||||||
|
}
|
||||||
|
|
||||||
slock_unlock(runloop->lock);
|
slock_unlock(runloop->lock);
|
||||||
|
|
||||||
@ -368,6 +373,7 @@ void rarch_main_data_msg_queue_push(unsigned type,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
slock_lock(g_data_runloop.cond_lock);
|
slock_lock(g_data_runloop.cond_lock);
|
||||||
|
g_data_runloop.thread_sleeping = false;
|
||||||
scond_signal(g_data_runloop.cond);
|
scond_signal(g_data_runloop.cond);
|
||||||
slock_unlock(g_data_runloop.cond_lock);
|
slock_unlock(g_data_runloop.cond_lock);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user