private void ProcessPendingStarts(bool completeSessions)
{
if(_sessionsPendingStart.Count == 0)
{
return;
}
ProxySession session;
while(_sessionsPendingStart.TryTake(out session, 0, _cancellationToken))
{
if(session.IsDisposed)
{
continue;
}
try
{
session.SendAsync(_dispatchedMessageHistory.CreateSnapshot());
if(completeSessions)
{
session.CompleteAsync();
}
_sessions.Add(session.Id, session);
Log.InfoFormat("started, id={0}, open={1}", session.Id, _sessions.Count);
}
catch(ObjectDisposedException) { }
}
}