public Philosopher(string left, string right, ref Fork leftFork, ref Fork rightFork) { _left = Context.ActorSelection($"user/{left}").Anchor; _right = Context.ActorSelection($"user/{right}").Anchor; _rightFork = rightFork; _leftFork = leftFork; _status = PhilosopherStatus.Thinking; Receive <string>(message => ProcessRequest(message)); }
private string GetStatus() { var temp = new PhilosopherStatus[status.Length]; mutex.Wait(); try { status.CopyTo(temp, 0); } finally { mutex.Release(); } return(string.Join("\t", temp.Select(x => x.ToString().Substring(0, 1)))); }
private void ChangeStatus(PhilosopherStatus status) { _status = status; Context.ActorSelection($"/user/{nameof(MonitorActor)}").Tell(_status.ToString(), Self); }