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.
This function must be called while holding the this's lock.
a TimeVal, determining the final time
data from the queue or null, when no data is received before