Here are the slides from my Streams talk; they cover a variety of bits and pieces of streams background and implementation that may or may not be useful to you.
| View
Hi Wez,
I am wondering about stream_set_timeout(). If I understand the purpose correctly it only controls the timeout until a connection is established, it does not however control how long the entire requests may take to complete. I guess this is my job to handle while reading the data chunks, but it would be nice to be able to define this on a stream level. It would make it much easier (and more performant) for PHP library authors to offer a maximum time for request completion.
Hi Lukas,
The timeout is per underlying IO syscall issued on the stream, so you get up to 60 seconds (the default) for connect, 60 seconds for the first underlying read call, 60 seconds for the next and so forth.
The streams layer could potentially be expanded to set an overall deadline for completion of (stream|file)_get_contents (where it seems most useful).

