¿Cómo usar \@writefile sin bloquear una secuencia de escritura?

¿Cómo usar \@writefile sin bloquear una secuencia de escritura?

Por lo que tengo entendido, para usarlo correctamente \@writefilehay que bloquear una secuencia de escritura, como esta:

\documentclass{article}

\usepackage{lipsum}

\begin{document}

\makeatletter
\newwrite\tf@foo
\openout\tf@foo=\jobname.foo
\newcommand\foo[1]{%
    Writing ``#1'' to \texttt{\jobname.foo}!%
    \protected@write\@auxout{}{\string\@writefile{foo}{#1}}%
    }
\makeatother

\foo{Bar}

\end{document}

(Esto realmente crea un archivo .foocon una línea que contiene Bar).

¿Hay alguna forma de evitar bloquear el flujo de escritura?

información relacionada