Mike Hearn mike@theoretic.com writes:
Basically the callback for the timeout is called, and the callback (for instance in set_next_timer:queue.c) calls remove_timeout_user() which does a free( user ), but at the end of handle_timeout() it also performs a free, so I think the same timeout struct is freed twice.
That shouldn't happen, the timeout can be either handled or removed, but not both. Exactly where do you see this happen? Do we somewhere call remove_timeout_user while handling the timeout?