I just have two small suggestions that have not been mentioned yet. - TaskTerminator::yield() should be used or removed. - Maybe _blocker could be "inlined" in the parent object (not being a pointer) and we would get rid of a delete as well as an assert and also do one allocation less. Thanks, Leo