> I have supplied programs that show that there is a leak, you can fill free
> to try them.

If you sent executables, they were stripped out of my email.

> I agree that the documentation is not good, but it is "obvious" that
> DeleteTimerQueue must be called.

To be clear, we're talking about DeleteTimerQueueTimer, not DeleteTimerQueue.

> See for example
> http://blogs.msdn.com/b/oldnewthing/archive/2004/12/23/331246.aspx

I don't follow their logic.  If the OS can't automatically clean up a one-shot 
timer, then there's no way our abstraction can...  The timer APIs seem pretty 
weak, and the documentation vague at best.

If we need matching calls to CreateTimerQueueTimer - DeleteTimerQueueTimer, and 
my patch assumed that we didn't, so it would have an issue, then I think the 
fix is to allocate a new structure:

struct timer_osd
{
        cl_timer_t *p_timer;
        HANDLE timer;
};

in cl_timer_trim() and pass that to the timer callback.  The callback calls 
DeleteTimerQueueTimer if it has not already been called for the timer in 
question.

- Sean
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to