Синхронизированная функция записи в C++
Я создаю фаззер для веб-приложений с использованием C++ и Boost, и главная проблема, с которой я сталкиваюсь, - это когда у меня запущено более одного потока, http-запросы, проходящие через мой прокси-сервер, записываются в файл. А поскольку существует несколько потоков, куча запросов добавляется в один файл. Я хочу, чтобы один файл на запрос, и я не уверен, как писать синхронизированные функции в C++ или как блокировать потоки, т. Д.
По сути, мне нужно синхронизировать функцию записи, чтобы к моменту ее завершения следующий поток не добавлялся в этот файл.
РЕДАКТИРОВАТЬ: Я сократил темы до одного, и он все еще делает это, что наводит меня на мысль, что это не проблема потока. Кажется, проблема в том, что итератор директории Boost не просматривает файлы по порядку, которые называются так: "request-0", "request-1". По какой-то причине он находит запрос-10 перед запросом-3.