Esempio n. 1
0
        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);
        }
Esempio n. 2
0
            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);
                }