internal void ClearMessagesInProgress()
{
if(this.executor != null)
{
this.executor.ClearMessagesInProgress();
}
// Because we are called from inside the Transport Reconnection logic
// we spawn the Consumer clear to another Thread so that we can avoid
// any lock contention that might exist between the consumer and the
// connection that is reconnecting.
lock(this.consumers.SyncRoot)
{
foreach(MessageConsumer consumer in this.consumers.Values)
{
consumer.InProgressClearRequired();
ThreadPool.QueueUserWorkItem(ClearMessages, consumer);
}
}
}