/* event has become signalled */
tickProc = NULL;
CloseHandle(hStopEvent);
+ hStopEvent = INVALID_HANDLE_VALUE;
return 0;
case WAIT_TIMEOUT:
/* tick */
}
-int
+void
startTicker(nat ms, TickProc handle_tick)
{
unsigned threadId;
(LPVOID)ms,
0,
&threadId);
- return (tickThread != 0);
+
+ if (tickThread == 0) {
+ sysErrorBelch("_beginthreadex");
+ stg_exit(EXIT_FAILURE);
+ }
}
-int
+void
stopTicker(void)
{
// We must wait for the ticker thread to terminate, since if we
}
if (exitCode != STILL_ACTIVE) {
tickThread = INVALID_HANDLE_VALUE;
+ if ( hStopEvent != INVALID_HANDLE_VALUE ) {
+ CloseHandle(hStopEvent);
+ hStopEvent = INVALID_HANDLE_VALUE;
+ }
return 0;
}
TerminateThread(tickThread, 0);
}
}
- return 0;
}