when creating a pipe, we should support a timeout parameter.
abstractj raised a valid concern: I want to retrieve a list of a bazilion users, and I want to specify the timeout acceptable to wait.