Hi Dan,
2008/7/23 Dan Hipschman <[EMAIL PROTECTED]>:
> This isn't the most efficient implementation, but it works, and it should
> not be difficult to tweak. Hence, I'd rather get this version in and add
> the optimizations one at a time, in little patches. "Get it working first..."
Yes, I think you're right. I don't think it will be too hard to change
the architecture of this to that of my suggestions.
However, I have one minor nit.
> +static void WINAPI timer_queue_thread_proc(LPVOID p)
> +{
> +struct timer_queue *q = p;
> +ULONG timeout_ms;
> +BOOL done;
> +
> +timeout_ms = INFINITE;
> +while (!q->quit)
> +{
> +LARGE_INTEGER timeout;
> +DWORD ret = NtWaitForSingleObject(q->event, FALSE,
> + get_nt_timeout(&timeout,
> timeout_ms));
This should be NTSTATUS.
> +
> +if (ret == STATUS_TIMEOUT)
> +queue_timer_expire_next(q);
> +
> +RtlEnterCriticalSection(&q->cs);
> +timeout_ms = timer_queue_update(q);
> +RtlLeaveCriticalSection(&q->cs);
> +}
--
Rob Shearman