ヘッダに性的ミューテックス定義してそれで同期しちゃいかんの?

template<typename T> struct static_mutex { static mutex unko_lock; };

template<typename T> mutex static_mutex<T>::unko_lock;

template struct static_mutex<void>;

→static_mutex<void>::unko_lockで同期する。