У меня есть код, который полностью параллелен, без зависимостей, поэтому использование pthreads было естественным выбором.К сожалению, есть один общий ресурс, файл журнала.
Мы не хотим, чтобы журнал чередовался построчно в любом случае, поэтому вместо использования мьютексов при каждом вызове журнала, который я хочу открытьотдельный файл журнала для каждого потока.Но в настоящее время во всем коде есть регистратор глобальных переменных.
В настоящее время у меня есть два решения, ни одно из которых меня не радует.
- Реализация хэша для идентификатора потока: pthread_self ().
- Передача параметра из создания потока в каждую вызываемую им функцию (очень инвазивную).
Мне бы хотелось какой-нибудь умный способ заставить его выглядеть так, как яиметь глобальную переменную в каждом потоке, что-то с минимальными издержками.