앱이 멈추지 않고 내 프로그램에서 mnesia를 멈출 수없는 문제가 발생했습니다.프로그램에서 mnesia가 멈췄을 때 Erlang 앱이 멈 춥니 다.
현재 내 erlang 앱에서 mnesia의 프로토 타이핑을하고 있습니다. 내 jaus_app.erl (시작 파일)에서
호출 :
{atomic, ok} = mnesia:load_textfile("priv/mnesia_prototype.txt")
내 정지() 함수를 호출
mnesia:dump_to_textfile("priv/mnesia_prototype_res.txt"),
mnesia:stop(),
나는이 줄을 주석하고 시작하고부터 mnesia를 중지하면 에를린 프롬프트, 나는 나의 신청을 깨끗하게 멈출 수있다.
본격적인 erlang 앱에서 이러한 프로토 타입 기능을 사용하지 않아야합니까?
켄. 얼랭 문서에서
'stop' 함수가'gen_server' 인 응용 프로그램 컨트롤러에서 호출 되었기 때문에 발생합니다. 그러나'mnesia : stop'은'application : stop (mnesia)'를 호출하고 응용 프로그램 컨트롤러로부터의 응답을 기다립니다. 교착 상태에 빠졌습니다. 그래서 간단한 대답은 "해당 콜백 함수에서'mnesia : stop'을 사용하지 마십시오."; 나는 훨씬 더 좋은 제안이 없다. :) – legoscia