вообще, в этом случае надо было бы запись в файл вынести в отдельный класс, запросы на запись ставить в очередь этого класса - а писать на диск уже в самом классе
тогда отпадет головная боль с многопоточным программированием
вот только не уверен, есть ли возможность в РНР создать singleton...