fix mistake in coroutine when the observable given to get_one ended
fix ambiguity by using fully qualified boost::begin/end
release a mutex before notifying about the end of a thread to avoid a crash on destruction