private static void OnGenericWork(ref SGenericWorkItem item) { ChunkStateManagerClient chunk = item.Chunk; item.Action(); OnGenericWorkDone(chunk); }
private static void OnGenericWork(ref SGenericWorkItem item) { ChunkStateManagerClient chunk = item.Chunk; // Perform the action item.Action(); int cnt = Interlocked.Decrement(ref chunk.m_genericWorkItemsLeftToProcess); if (cnt <= 0) { // Something is very wrong if we go below zero Assert.IsTrue(cnt == 0); // All generic work is done OnGenericWorkDone(chunk); } }