I'm not sure, I'm understanding this correctly. You lock the observer and copy the vector of tasks that are wating for the predecessor to enter ready state?