Beispiel #1
0
 static internal int ChooseWildcardReceiveToMatch(OMini::MiniMPIStringRuntime self, int[] wildRecvIdxs)
 {
     return(Helper.SimpleWrap <int>(
                delegate(ClrSyncManager manager)
     {
         // Don't match unless all our processes are blocked
         if (!self.AreAllProcessesBlocked())
         {
             return -1;
         }
         // let CHESS choose for us
         return wildRecvIdxs[MChessChess.Choose(wildRecvIdxs.Length)];
     },
                delegate() {
         // Don't match unless all our processes are blocked
         if (!self.AreAllProcessesBlocked())
         {
             return -1;
         }
         return self.ChooseWildcardReceiveToMatch(wildRecvIdxs);
     }
                ));
 }
Beispiel #2
0
 static internal int ChooseSendToMatchWithWildcardReceive(OMini::MiniMPIStringRuntime self, List <int> sendInstrIdxs)
 {
     return(Helper.SimpleWrap <int>(
                delegate(ClrSyncManager manager)
     {
         // Don't match unless all our processes are blocked
         if (!self.AreAllProcessesBlocked())
         {
             return -1;
         }
         // let CHESS choose for us
         return sendInstrIdxs[MChessChess.Choose(sendInstrIdxs.Count)];
     },
                delegate()
     {
         // Don't match unless all our processes are blocked
         if (!self.AreAllProcessesBlocked())
         {
             return -1;
         }
         return self.ChooseSendToMatchWithWildcardReceive(sendInstrIdxs);
     }
                ));
 }