Здравствуйте, vdimas, Вы писали:
V>функциональный синглтон, создаст объект при первом обращении:
V>V>TMutex& global_mutex() {
V> static TMutex t;
V> return t;
V>}
V>...
V>// и в программе везде юзаешь:
V>global_mutex().TryLock();
V>
V>получишь глобальный в пределах бинарника статический экземпляр мютекса,
V>вся эта кухня будет корректно работать даже на границах между бинарниками (из других DLL).
Насколько я помню, вызов конструктора статической переменной может отложиться до первого вызова любой функции,
определенной в том же TU. Это может произойти после вызова main, когда у тебя уже >1 потока.