nonblocking reading fixed