Программа компилится следующим макаром
gcc ...... -c log.c
gcc ...... -g -O2 -o prog log.o ... -pthread -Wall
есть две версии, почти идентичные, т.е. одна с потоками, а другая без. Различие между ними в коде минималоьны, т.е. расставлены mutex и соответственно всевозможные блокировки. Так вот при работе с потоками происход утечка памяти. Даже добавление блокировок при работе с malloc ситуация не меняется. Для всех mutex корректно отрабатывает destroy, потоки завершаются pthread_detach(), поток создается CREATE_DETACHED и SCOPE_SYSTEM.
ЗЫ: FreeBSD 4.1