read is blocking, so finish(queue) is redundant