• 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 zusammengesetzten
      stderr, das getterm produziert.
    
    * kernel2: lio_composite_stream() akzeptiert jetzt auch NULL für die
      beiden Parameter. In diesem Fall fehlt dem Ergebnisstream einfach die
      Les- bzw. Schreibbarkeit.
    Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
    b854d122
Name
Last commit
Last update
build Loading commit data...
doc Loading commit data...
src Loading commit data...
tests Loading commit data...
.gitignore Loading commit data...
Makefile Loading commit data...
Makefile.Jidder Loading commit data...
bochs.config Loading commit data...
buildmk.sh Loading commit data...
config.py Loading commit data...
config.sh Loading commit data...
doxyfile_cdi Loading commit data...
doxyfile_kernel Loading commit data...
doxyfile_modules Loading commit data...