Pops data from the this.
If the queue is empty, blocks until
end_time or until data becomes available.
If no data is received before
end_time, null is returned.
a TimeVal, determining the final time
data from the queue or null, when no data is received before