echo "更新\n".date("Y/m/d H:i:s",filemtime($datafile));

の前後で$datafileの中身が空になるという怪現象に遭遇。

	$datafile="./test.php";
	print "Before ".$datafile;
	echo "更新\n".date("Y/m/d H:i:s",filemtime($datafile));
	print "After ".$datafile;

まで削るとさすがに大丈夫。まぁ再現するので差分を見ていけば大丈夫だろう。マルチスレッドって訳でも無いので多分単純ミスと思われる。