Skip to content
  • Manuel Stoeckl's avatar
    Send data in small chunks, as soon as it's ready · 83ad10a3
    Manuel Stoeckl authored
    This change replaces the barrier-style synchronization for diff
    construction  and compression with a task pool. The collect_update
    function now creates a series of tasks, which are run using the new
    thread pool. (The main thread can also run tasks, which is helpful
    when e.g. running with exactly one thread.) On completion, each task
    inserts a message into the transfer queue, and notifies the main
    loop poll by writing to a self-pipe. The main thread writes the new
    transfer data to the channel fd as necessary. When all pool tasks are
    complete, the protocol messages are appended to the transfer queue
    and sent.
    83ad10a3