Completion is fully supported in the SO3 kernel. So far, one thread may be woken up with the complete() function (which corresponds to the original semantics of the function).
I added complete_all() which wakes up all waiting threads. The function makes an atomatic reset of the associated counter (doing a reinit_completion()) during the call.
This behaviours is slightly different than in Linux where reinit_completion() must be done by the caller.