Am 21.03.10 21:19, schrieb Timothy Brownawell: > Thomas Keller wrote: >> # >> # old_revision [dda54058811fd39356e8755ad0d68998a5159dd3] >> # >> # patch "network/reactor.cc" >> # from [a90cee5442d3c77d8082d7bb91d4d23170bf25fb] >> # to [4f424db0f326e61b015ff042880f2d77589c6429] >> # >> ============================================================ >> --- network/reactor.cc a90cee5442d3c77d8082d7bb91d4d23170bf25fb >> +++ network/reactor.cc 4f424db0f326e61b015ff042880f2d77589c6429 >> @@ -87,8 +87,9 @@ void reactor::remove(shared_ptr<reactabl >> if (i != items.end()) >> { >> items.erase(i); >> + bool had_pipe = have_pipe; >> have_pipe = false; >> - if (readying) >> + if (readying && !had_pipe) >> item->remove_from_probe(probe); >> } >> } >> >> @Timothy: I was a bit careful about setting have_pipe after `if >> (readying) ...` here - if you think this would not introduce a problem, >> then this patch could be simplyfied of course. > > The simpler way should be fine, neither version of remove_from_probe > cares about the reactor's internal state.
Ok, the simplified version has been committed in dbb536a64. Thomas. -- GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz Please note that according to the EU law on data retention, information on every electronic information exchange might be retained for a period of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en
signature.asc
Description: OpenPGP digital signature