-
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