private static (Status status, OutputStruct output) CompletePendingResult(CompletedOutputIterator <KeyStruct, ValueStruct, InputStruct, OutputStruct, Empty> completedOutputs) { Assert.IsTrue(completedOutputs.Next()); var result = (completedOutputs.Current.Status, completedOutputs.Current.Output); Assert.IsFalse(completedOutputs.Next()); completedOutputs.Dispose(); return(result); }
internal void Process(CompletedOutputIterator <KeyStruct, ValueStruct, InputStruct, OutputStruct, ContextStruct> completedOutputs, bool useRMW) { Assert.AreEqual(CompletedOutputIterator <KeyStruct, ValueStruct, InputStruct, OutputStruct, ContextStruct> .kInitialAlloc * CompletedOutputIterator <KeyStruct, ValueStruct, InputStruct, OutputStruct, ContextStruct> .kReallocMultuple, completedOutputs.vector.Length); Assert.AreEqual(deferredPending, completedOutputs.maxIndex); Assert.AreEqual(-1, completedOutputs.currentIndex); var count = 0; for (; completedOutputs.Next(); ++count) { ref var result = ref completedOutputs.Current; VerifyStructs((int)result.Key.kfield1, ref result.Key, ref result.Input, ref result.Output, ref result.Context, useRMW); Assert.AreEqual(keyAddressDict[(int)result.Key.kfield1], result.Address); }