¿Hacer que PHP espere hasta que una función se complete?

¿Hay alguna manera de hacer que PHP espere hasta que una función regrese antes de continuar?

Este es mi código:

<?php

    set_time_limit(0);

    function waitforchange($nof) {
        $lfilemod=filemtime($nof);
        while(filemtime($nof) == $lfilemod) {
            clearstatcache();
            usleep(10000);
        }
    }

    waitforchange('./blahblah.txt')
    sleep(5);
    echo 'done';

?>

Se supone que hay que esperar hastablahblah.txt&nbsp;cambios, espere otros cinco segundos después de eso, luego imprima "listo", sin embargo, se imprime "listo" después de cinco segundos, sin importar si el archivo realmente cambió.