internal static ProcessId WatchWorkers(ProcessId router, IEnumerable <ProcessId> workers, RouterOption option) { if ((option & RouterOption.RemoveLocalWorkerWhenTerminated) == RouterOption.RemoveLocalWorkerWhenTerminated) { workers.Where(w => ActorContext.IsLocal(w)).Iter(w => watch(router, w)); } if ((option & RouterOption.RemoveRemoteWorkerWhenTerminated) == RouterOption.RemoveRemoteWorkerWhenTerminated) { workers.Where(w => !ActorContext.IsLocal(w)).Iter(w => watch(router, w)); } return(router); }