Блокировка вывода в консоль с потоков

Пишу сейчас свой псевдошутер, в котором есть объект, которым управляю я и другой объект(бот), работающий в отдельном потоке и пытающийся меня убить. Так же у меня имеется реализация выстрелов отдельными потоками (1 выстрел - новый поток). Проблема в том, что почему-то защита lock_guard функции вывода в консоль не работает, из-за чего появляются некие казусы в консоле (показано в скриншоте). Буду признателен за помощь!

Сбой вывода

Вот код функции вывода:

static void Object(const int x, const int y, const char sym) {
    COORD position = { x, y };
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    std::lock_guard<std::mutex> lock(m);
    SetConsoleCursorPosition(hConsole, position);
    std::cout << sym;
}

Ответы (0 шт):