public Philosopher(int number, IForkExchange conn) { string writerMutexName = "WrMutex"; string tableMutexName = "TableMutex"; _connection = conn; _forksState = ForksState.Empty; Number = number; Mutex.TryOpenExisting(tableMutexName, out _tableMutex); if (_tableMutex == null) { _tableMutex = new Mutex(false, tableMutexName); } Mutex.TryOpenExisting(writerMutexName, out _writerMutex); if (_writerMutex == null) { _writerMutex = new Mutex(false, writerMutexName); } _timerStep = new Timer(); _timerHealth = new Timer(); _timerStep.Elapsed += Step; _timerHealth.Elapsed += Death; _tableMutex.WaitOne(); GetLeftForkIndex(Number, out _leftForkIndex, Table); _tableMutex.ReleaseMutex(); }
public Cafe(int number, IForkExchange conn) { _connection = conn; TableC = new Table(number); _connection.Send(TableC); string tableMutexName = "TableMutex"; Mutex.TryOpenExisting(tableMutexName, out _tableMutex); if (_tableMutex == null) { _tableMutex = new Mutex(false, tableMutexName); } }