Marc Lehmann wrote:

On Mon, Dec 15, 2008 at 06:34:10PM +0200, Graham Leggett <[email protected]> 
wrote:
Can someone confirm first of all for me that ev_timer_stop is the correct way to cancel a timer?

Yes - are you sure you don't start it again, or modify it in illegal ways?

What I found I had done was initialised the timer twice. It seems that when this happens you have to stop the timer twice, or a single stop of the timer isn't effective.

The docs make no mention of how you destroy a timer, only how you might create one or reset one.

Because destruction is on your side of the API - libev has no facilities
to create or destroy timers, that's what the application does.

The documentation mentions exactly, however, when you can safely reuse the
watcher structure for something else, which is what you seem to want.

But remember, creation and destruction _for watchers_ is completely
outside the libev API, only _event loops_ can be created and destructed.

What I meant by "destroy a timer" is "make sure this callback is never executed, because the memory beneath this is about to be freed".

At the moment, I am using ev_timer_stop() for this, and as long as I don't initialise the same timer twice, it seems to work.

Regards,
Graham
--

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev

Reply via email to