UNUSED_PARAM( timer_signalled );\r
\r
p_timer->timeout_time = 0;\r
+ p_timer->thread_id = GetCurrentThreadId();\r
\r
(p_timer->pfn_callback)( (void*)p_timer->context );\r
+\r
+ p_timer->thread_id = 0;\r
}\r
\r
\r
{\r
p_timer->h_timer = NULL;\r
p_timer->timeout_time = 0;\r
+ p_timer->thread_id = 0;\r
}\r
\r
\r
{\r
CL_ASSERT( p_timer );\r
\r
- if( p_timer->h_timer )\r
+ if( p_timer->h_timer && p_timer->thread_id != GetCurrentThreadId() )\r
{\r
/* Make sure we block until the timer is cancelled. */\r
DeleteTimerQueueTimer( NULL, p_timer->h_timer, INVALID_HANDLE_VALUE );\r