LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Но тогда есть вероятность что много медленных клиентов заблокируют все треды в пуле. Собственно, по этому так и реализовано как описано выше.

я намекал на асинхронную обработку, есличо.

Но сейчас хочется решить вопрос с обычным логированием в файл и переоткрытие его по сигналу.

Вынеси запись логов в отдельный тред через схему с pipe, которую я выше описал. В треде открой signalfd (не забудь заблокировать этот сигнал в остальных тредах) и сделай kqueue на эти два файловых дескриптора. Если пришло что-то в pipe, пишешь это в файл. Если пришёл сигнал, делаешь ротацию.

Исходная версия hateyoufeel, :

Но сейчас хочется решить вопрос с обычным логированием в файл и переоткрытие его по сигналу.

Вынеси запись логов в отдельный тред через схему с pipe, которую я выше описал. В треде открой signalfd (не забудь заблокировать этот сигнал в остальных тредах) и сделай kqueue на эти два файловых дескриптора. Если пришло что-то в pipe, пишешь это в файл. Если пришёл сигнал, делаешь ротацию.