public Interleave(TeardownReceiverGroup teardown, ExclusiveReceiverGroup mutex, ConcurrentReceiverGroup concurrent) { ReceiverTask[] branches = teardown._branches; for (int i = 0; i < branches.Length; i++) { ReceiverTask receiverTask = branches[i]; receiverTask.ArbiterContext = new InterleaveReceiverContext(InterleaveReceivers.Teardown); } ReceiverTask[] branches2 = mutex._branches; for (int j = 0; j < branches2.Length; j++) { ReceiverTask receiverTask2 = branches2[j]; receiverTask2.ArbiterContext = new InterleaveReceiverContext(InterleaveReceivers.Exclusive); } ReceiverTask[] branches3 = concurrent._branches; for (int k = 0; k < branches3.Length; k++) { ReceiverTask receiverTask3 = branches3[k]; receiverTask3.ArbiterContext = new InterleaveReceiverContext(InterleaveReceivers.Concurrent); } _mutexBranches = new List <ReceiverTask>(teardown._branches); ReceiverTask[] branches4 = mutex._branches; for (int l = 0; l < branches4.Length; l++) { ReceiverTask item = branches4[l]; _mutexBranches.Add(item); } _concurrentBranches = new List <ReceiverTask>(concurrent._branches); }
public static Interleave Interleave(TeardownReceiverGroup teardown, ExclusiveReceiverGroup exclusive, ConcurrentReceiverGroup concurrent) { return(new Interleave(teardown, exclusive, concurrent)); }