protected override bool TryDequeue(Ptr ptr, out IQueueItem item) { var res = m_db.TryRemove(ptr.Identifier, out item); OnTryDequeue(ptr, item, res); return(res); }
protected override bool TryDequeue(Ptr ptr, out IQueueItem item) { if (CoverMode == CoverMode.Persistent) { if (QueueList.TryRemove(ptr, out item)) { if (CommitMode == CommitMode.OnDisk) { IQueueItem item_pers = null; if (m_db.TryRemove(ptr.Identifier, out item_pers)) { OnTryDequeue(ptr, item, true); return(true); } } else { return(PersistItemRemove(ptr)); } } } else { if (QueueList.TryRemove(ptr, out item)) { return(true); } } return(false); }
bool PersistItemRemove(Ptr ptr) { IQueueItem persistItem = null; Task tsk = Task.Factory.StartNew(() => m_db.TryRemove(ptr.Identifier, out persistItem) ); return(true); }