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:
Markus Armbruster 2007-07-20 18:12:03 +00:00
parent 228a545ff3
commit d4150cc2ee
3 changed files with 3 additions and 1 deletions

View file

@ -76,6 +76,7 @@ lwpReschedule(void)
}
lwpSigWakeup();
lwpWakeupSleep();
/* destroy dead threads */
lwpStatus(LwpCurrent, "Cleaning dead queue");

View file

@ -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);

View file

@ -123,7 +123,7 @@ lwpWakeupFd(struct lwpProc *proc)
lwpReady(proc);
}
static void
void
lwpWakeupSleep(void)
{
time_t now;