Introductory concepts callbacks A small task consisting of a function pointer (code) and data pointer (state) Called when another task has completed, hence "callback" Still inside a _single_ thread void task(void *taskdata, func *task2, void *task2data) { /* Perform task */ /* .. completion, call callback to notify this */ task2(task2data); }