use mutual exclusion on shared variable clients