LWP failed to wake up threads sleeping in empth_sleep() while other
threads were runnable. This let players with a sufficiently fast connection starve out system threads, including the update. Fix: [EMPTH_LWP] (lwpWakeupSleep): External linkage. [EMPTH_LWP] (lwpReschedule): Call it.
This commit is contained in:
parent
228a545ff3
commit
d4150cc2ee
3 changed files with 3 additions and 1 deletions
|
@ -76,6 +76,7 @@ lwpReschedule(void)
|
|||
}
|
||||
|
||||
lwpSigWakeup();
|
||||
lwpWakeupSleep();
|
||||
|
||||
/* destroy dead threads */
|
||||
lwpStatus(LwpCurrent, "Cleaning dead queue");
|
||||
|
|
|
@ -89,6 +89,7 @@ void lwpReady(struct lwpProc *);
|
|||
void lwpReschedule(void);
|
||||
void lwpEntryPoint(void);
|
||||
void lwpInitSelect(struct lwpProc *);
|
||||
void lwpWakeupSleep(void);
|
||||
void lwpSelect(void *);
|
||||
void lwpInitSigWait(sigset_t *);
|
||||
void lwpSigWakeup(void);
|
||||
|
|
|
@ -123,7 +123,7 @@ lwpWakeupFd(struct lwpProc *proc)
|
|||
lwpReady(proc);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
lwpWakeupSleep(void)
|
||||
{
|
||||
time_t now;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue