Io löst eine Ausnahme aus, wenn es auf einen Deadlock stößt.
ref: ein Beitrag von Ich glaube Steve Dekorte auf lang.lightweight . Nachricht eingefügt unten:
%Vor%Io hat Fortsetzungen in Form von asynchronen Nachrichten und Futures. Beispiel:
Das Interessante an diesem Nutzungsstil ist, dass niemand es schwer zu verstehen scheint. Außerdem verwendet Io Futures, um eine automatische Deadlock-Erkennung durchzuführen. Wenn ein Deadlock auftritt, wird eine Ausnahme ausgelöst, statt sie zuzulassen.
NB. Der obige Eintrag stammt aus dem Jahr 2003, daher gab es einige Änderungen. Aktuelle Informationen finden Sie in der neuesten Concurrency
Dokumentation.
Update - und aus der Onlinedokumentation es sagt:
Automatische Deadlock-Erkennung
Ein Vorteil der Verwendung von Futures ist, dass, wenn eine Zukunft eine Wartezeit erfordert, sie prüfen wird, ob das Warten auf das Ergebnis zu einem Deadlock führt, und wenn dies der Fall ist, vermeiden Sie den Deadlock und lösen Sie eine Ausnahme aus. Sie führt diese Überprüfung durch, indem sie die Liste der verbundenen Futures durchläuft.
Jede Zukunft weiß, auf welchen Akteur sie wartet und jeder Akteur weiß, auf welche Zukunft er wartet (falls vorhanden), so dass Io gerade diese Kette durchläuft, um zu sehen, ob der aktuelle Akteur darin ist. Wenn es so ist, würde es einen Stillstand geben. Wenn nicht, ist es nicht.
Tags und Links concurrency deadlock iolanguage