• Dridi Boukelmoune's avatar
    ws: New WS_ReqPipeline() · 17ca56af
    Dridi Boukelmoune authored
    When a session has data pipelined we perform a dirty dance to move it at
    the beginning of the workspace. The rollbacks used to occur between
    HTC_RxPipeline() and HTC_RxInit() calls until it was centralized in the
    latter.
    
    With a dedicated WS_ReqPipeline() operation we can capture the semantics
    of initializing an existing connection for its next task with or without
    data fetched from the previous task.
    
    While conceptually there is still a use-after-free since the pipelined
    data may belong to the same workspace, it is fine if that happens within
    the bounds of an atomic workspace operation.
    17ca56af
cache_session.c 15.4 KB