public void Commit() { try { parent.AssertNotDisposed(); queueStorage.Global(actions => { foreach (var bookmark in bookmarks) { actions.GetQueue(bookmark.QueueName) .SetMessageStatus(bookmark, MessageStatus.ReadyToDeliver); } foreach (var msg in messages) { actions.MarkReceived(msg.Id); } actions.Commit(); }); parent.receivedMsgs.Add(messages.Select(m => m.Id)); foreach (var msg in messages) { parent.OnMessageQueuedForReceive(msg); } lock (parent.newMessageArrivedLock) { Monitor.PulseAll(parent.newMessageArrivedLock); } } finally { Interlocked.Decrement(ref parent.currentlyInCriticalReceiveStatus); } }
public void Commit() { try { parent.AssertNotDisposed(); queueStorage.Global(actions => { foreach (var bookmark in bookmarks) { actions.GetQueue(bookmark.QueueName) .SetMessageStatus(bookmark, MessageStatus.ReadyToDeliver); } foreach (var id in messageIds) { actions.MarkReceived(id); } actions.Commit(); }); parent.receivedMsgs.Add(messageIds); lock (parent.newMessageArrivedLock) { Monitor.PulseAll(parent.newMessageArrivedLock); } } finally { #pragma warning disable 420 Interlocked.Decrement(ref parent.currentlyInCriticalReceiveStatus); #pragma warning restore 420 } }