Wie erkennt die IO-Sprache Deadlocks automatisch?

8

Ich habe gelesen, dass Io Sprache Futures hat, die einen Deadlock erkennen kann automatisch. Ich weiß nichts darüber und habe eine Syntax gesehen. Wie erkennt Io Sprache Deadlocks damit?

    
jer 08.11.2010, 04:03
quelle

2 Antworten

7

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:

  

Io hat Fortsetzungen in Form von asynchronen Nachrichten und Futures. Beispiel:

%Vor%
  

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.

    
draegtun 08.11.2010, 12:54
quelle
7

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.

    
Steve Dekorte 28.12.2010 16:05
quelle