The design of a task parallel library | Synapse