tis 2008-04-08 klockan 12:55 -0600 skrev Alex Rousskov:
> BTW, if somebody commits that patch, please polish the reason phrase in
> the cancel() call to something more specific.

The submitted pach didn't work for two reasons. In fact this
cancellation of comm scheduled calls doesn't work at all.

a) There was no cancellation of the requested event in the
IdleConnList::read or ::timeout methods.

b) Even after fixing that it fails for pending comm calls as the
registered callback was reset when comm scheduled the callback.

and third

c) commSetTimeout didn't cancel pending callbacks. But due to 'b' it
can't..


Why: Because when comm shedules the callback it also clears the
reference, so there is no handle left to cancel it..

This is done both by commio_finish_callback and checkTimeouts lb

There seems to be a mismatch here between the expectations of AsyncCall
and the one-time type callback events used by the comm layer. Any ideas
on how to map these two?

Regards
Henrik

Reply via email to