if I understand your question correctly, it is equivalent to "if the notifier thread blocks the mutex, trying to notify some resume in another thread"
no, it is not necessary and even makes some kind of counter-effect.
when condition_variable
notified from another thread, it tries to block the mutexes on which it was strewn. blocking this mutex from another thread will block another other thread that is trying to block it, until the blocking shell goes out of scope.
PS
if you remove the lock from a function that sends data to worker threads, ready
and processed
should at least be atomic. they are currently synchronized by the lock, but when you remove the lock, they are no longer thread safe
source share