On Thu, 25 Apr 2002, Rein Klazes wrote:
Here is the same +comm,+file now with added +server:
| trace:file:FILE_ReadFileEx file 232 to buf 0x405953f0 num 8 0x409032e4 func (nil) | 0806cfe8: get_handle_fd( handle=232, access=80000000 ) | 0806cfe8: get_handle_fd() = 0 { fd=18, type=1, flags=1 } | 0806cfe8: register_async( handle=232, type=1, overlapped=0x41d615b0, count=8, status=00000103 ) | 0806cfe8: register_async() = 0
=> async request successfully registered
| trace:file:GetOverlappedResult (232 0x409032e4 0x405953a4 0) | trace:file:GetOverlappedResult waiting on 0x409032e4 | 0806cfe8: select( flags=14, cookie=0x405951bc, sec=1019746522, usec=250830, handles={236} ) | 0806cfe8: select() = TIMEOUT
=> async has not been served yet - TIMEOUT. The reason is that the file descriptot for serial port had not been polled in the meantime.
OK, I know what to do about that. When register_async is called with a new request, we must immediately look for pending events, as we do with sockets.
Thanks for spotting this, expect a patch soon.
Martin