handle end of cursor

have to poll,
although AwaitData will keep a delay between polling