Read data from the read end of a pipe using read(2) system call.For pipe.read(buf, offset~, max_len~),at most max_len bytes of data will be written to buf, starting from offset.The number of read bytes will be returned.
At most one task can read from a pipe at any time.To allow multiple reader,use a worker task for reading and use @async.Queue to distribute the data.