Допустим, есть класс наследованный от QObject и он живёт в QThread. Потоко-безопасно работать с таким классом через сигналы-слоты/InvokeMethod с QueuedConnection. Как только мы где-то вызываем, хоть в одном месте, метод/слот напрямую и он модифицирует общие данные - то мы должны вообще везде обложиться мьютексами где эти данные потом читаются.
Хотелось бы уйти от использования мьютексов, а работать когда все слоты вызываются в контексте своего потока. Так удобнее и надежнее (от дедлоков) работать.
Есть ли макросы или иные способы упростить работу с QueuedConnection, или придется делать методы-обертки, внутри которых будет жить emit или InvokeMethod?
ЗЫ Я уже создавал подобную тему, в ней я понял что проблема существует - вызов напрямую в контексте вызывающего треда. Теперь бы узнать как упростить это дело.