changed locker class to template class as it can handle both the recursive mutex and the normal mutex. The default is the recursive mutex