protected void UnregisterListenerCommon (ChannelDispatcher channel, TimeSpan timeout) { var entry = Entries.First (e => e.ChannelDispatcher == channel); Entries.Remove (entry); entry.WaitHandle.Set (); // make sure to finish pending requests. }