Von dem, was ich in den Dokumenten gelesen habe, fangen gen_servers keine Exits ab. Wenn ein Prozess einen anderen Prozess mit spawn_link startet und der Kindprozess abstürzt, stürzt der Elternteil ebenfalls ab.Ich kann einen gen_server nicht durch Absturz von einem spawn_linked-Prozess zum Absturz bringen
Dies ist jedoch nicht, was ich sehe. Ich habe einen gen_server, der einen Prozess spawn_links. Ich habe eine Funktion in dem Kind Prozess wie folgt:
test(JobIsHalfDone) ->
case JobIsHalfDone of
true -> exit(test);
false -> ok
end.
Wenn diese Funktion den Ausgang Signal sendet, erhalte ich eine Nachricht:
** Ausnahme Ausfahrt: test
Doch seine Eltern gen_server tickt ununterbrochen. Warum?
Ja, du hast Recht. Ich habe es nur mit einem minimalen gen_server verifiziert. Etwas anderes muss in meinem echten gen_server vor sich gehen. – mwt
Ich habe es herausgefunden. Ich hatte den spawn_link lose in das gen_server-Modul platziert, anstatt ihn als Callback einzuschließen. Anscheinend bricht das die gen_server Abstraktion. – mwt
Was braucht es für Sie, um eine Antwort als endgültig zu schließen? – Christian