나는 gen_fsm의 동작을하는 모듈을 가지고 있습니다. 지금은 표준 {정지, 이유, 상태}을 적절한 상태/메시지로 반환하여 종료합니다.Erlang 서버 또는 fsm을 정상적으로 종료 하시겠습니까?
제대로 종료되는 것처럼 보이지만 런타임 중에는 오류로 간주됩니다.
정상입니까? 오류로 간주되지 않고 fsm 프로세스를 중지 할 수있는 방법이 있습니까?
나는 gen_fsm의 동작을하는 모듈을 가지고 있습니다. 지금은 표준 {정지, 이유, 상태}을 적절한 상태/메시지로 반환하여 종료합니다.Erlang 서버 또는 fsm을 정상적으로 종료 하시겠습니까?
제대로 종료되는 것처럼 보이지만 런타임 중에는 오류로 간주됩니다.
정상입니까? 오류로 간주되지 않고 fsm 프로세스를 중지 할 수있는 방법이 있습니까?
반환 값은 {stop, StateName, StateData}가 아닌 {stop, Reason, StateData}입니다.
이유가 정상 또는 종료 이외의 것이라면 오류 보고서가 생성됩니다. 서버의 정상적인 종료는 정상 사용을 위해 서버가 감독자가 종료하도록 요청할 때 종료가 사용됩니다.
(편집 지금 오류 정보가 추가되었습니다.)
gen_fsm
가 function_clause 예외 (함수가 존재하지만 절은 그 인수에 대해 일치 할 수 없다)에 선도
client_fsm:terminate(normal, loggedin, {state,#Port<0.144>,12345,"Bob"})
를 호출한다. 해당 호출이 성공할 수 있도록 client_fsm:terminate/3
을 변경하면 오류가 사라집니다.
그래, 나는 StateName 대신 Reason을 의미했다. 어쨌든, 내 질문에 대답했다. 감사. – mindeavor
죄송합니다. 원자 일반을 명시 적으로 사용한 후에도 여전히 오류가 발생합니다. – mindeavor
흠 ... 정확히 당신은 실수로 무엇을보고 있습니까? – cthulahoops