convert scheduler to use shared mutex
Improved blocking implementation