aborting the php script if the write would be blocking.
Maybe using non-blocking I/O would help too ?:)
That would be the obvious choice. But unfortunately there seems to be no way to realize that in PHP. And furthermore if the fifo has no listener there is no point in writing the data. Having the data queued until the listener comes up again would just create a huge backlog of work (map tiles to be rendered) which no one would care about (since the requests for those tiles timed out anyways).