모니터되는/링크 된 프로세스가 죽어가는 타이밍에 관한 질문이 있습니다. 실제로 테스트하는 방법을 생각할 수 없습니다. 다음은 내가 걱정하는 시나리오입니다.handle_call이 완료되기 전에 모니터 된 프로세스가 종료되면 어떻게됩니까?
master
및 slave
이라는 프로세스가 있다고 가정 해 보겠습니다.
master
세트true
에trap_exit
.master
은{ok, Pid} = slave:start_link()
이므로 두 개를 연결합니다.master
은gen_server:call(Pid, Msg)
과 같습니다.- 전에 메시지가
Pid
에 도착하면 프로세스가 충돌합니다.
질문 :
이- 는
master
먼저EXIT
메시지를받을 수 있습니까? 또는 - 으로
master
이 실패합니다.Pid
은 이미 죽었습니까?