static void Main(string[] args) { RemoteServerGroup.Initiate(args); // Inicjalizacja singletona Remote Server Group // Tutaj powinny zostać stworzone wszystkie Monitory i zmienne warunkowe BufforMonitor sharedBufforMonitor = new BufforMonitor(3, RemoteServerGroup.Instance.NodeAddressNumber); ConditionalVariable empty = new ConditionalVariable("Empty", sharedBufforMonitor); ConditionalVariable full = new ConditionalVariable("full", sharedBufforMonitor); RemoteServerGroup.StartRemoteExecution(); // Barriera zapewniająca, że wszystkie servery wykonają poprawnie całą inicjalizację obiektów if (RemoteServerGroup.Instance.NodeAddressNumber < 2) { Consumer consumer = new Consumer(empty, full, sharedBufforMonitor); consumer.Consume(); } else { Producer producer = new Producer(empty, full, sharedBufforMonitor); producer.Produce(); } RemoteServerGroup.Finish(); }
public Producer(ConditionalVariable empty, ConditionalVariable full, BufforMonitor sharedBufforMonitor) { Empty = empty; Full = full; SharedBufforMonitor = sharedBufforMonitor; }