• Kevin Wolf's avatar
    kernel2: Zusammengesetzte Streams gefixt · b854d122
    Kevin Wolf authored
    ! kernel2: Beim Aufräumen von Ressourcen muss man aufpassen, dass man
      nicht Ressourcen wegräumt, die noch von einem zusammengesetzten Stream
      benutzt werden.
    
      Um das zu fixen, gestaltet dieser Commit die Funktionsweise von Pipes
      grundsätzlich um: Statt in einem Stream für Lesen und Schreiben auf
      zwei verschiedene Ressourcen zu verweisen und zwei Dateizeiger zu
      verwalten, sind das jetzt zwei unabhängige Streams, die mittels
      lio_composite_stream() zusammengesetzt werden.
    
      Gleichzeitig hat ein lio_stream* jetzt entweder s->is_composite und
      verweist auf zwei andere Streams (statt vorher Ressourcen), die jetzt
      auch gerefcountet werden, oder er ist ein normaler Stream und verweist
      auf eine Ressource und hat einen Dateizeiger. Alle Funktionen, die auf
      die Ressource zu einem Stream zugreifen wollen, müssen jetzt für
      zusammengesetzte Streams erst einmal bis zum Wurzelstream durchgehen.
    
      Das fixt Rot beim Schließen der letzten Instanz des z...
    b854d122
client.c 27.7 KB