(empth_sleep) [_WIN32]: Ensure the thread does not waking up early.
It has been seen which caused an update to be missed.
This commit is contained in:
parent
dbf7f554b1
commit
274c3d3a36
1 changed files with 9 additions and 5 deletions
|
@ -63,6 +63,7 @@
|
|||
#include "misc.h"
|
||||
#include "empthread.h"
|
||||
#include "prototypes.h"
|
||||
#include "server.h"
|
||||
|
||||
#define loc_MIN_THREAD_STACK 16384
|
||||
|
||||
|
@ -325,8 +326,6 @@ loc_Exit_Handler(DWORD fdwCtrlType)
|
|||
static void
|
||||
empth_threadMain(void *pvData)
|
||||
{
|
||||
time_t now;
|
||||
|
||||
empth_t *pThread = pvData;
|
||||
|
||||
/* Out of here... */
|
||||
|
@ -342,9 +341,14 @@ empth_threadMain(void *pvData)
|
|||
/* Signal that the thread has started. */
|
||||
SetEvent(hThreadStartEvent);
|
||||
|
||||
/* seed the rand() function */
|
||||
time(&now);
|
||||
srand(now ^ (unsigned)pThread);
|
||||
/*
|
||||
* seed the rand() function
|
||||
* In WIN32, each thread has seed
|
||||
*/
|
||||
if (rnd_seed.set)
|
||||
srand(rnd_seed.seed);
|
||||
else
|
||||
srand(time(NULL) ^ (unsigned)pThread);
|
||||
|
||||
/* Switch to this thread context */
|
||||
loc_RunThisThread(NULL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue