http://bugs.winehq.org/show_bug.cgi?id=14195 --- Comment #8 from Dmitriy Anisimkov <anisimkov(a)ada-ru.org> 2009-01-20 05:51:02 --- (In reply to comment #7)
The patch is wrong, you can't just restart the poll, you need to update the timeout.
Wine already have such ignorance without timeout recalculation. static inline int do_block( int fd, int events, int timeout ) { struct pollfd pfd; int ret; pfd.fd = fd; pfd.events = events; while ((ret = poll(&pfd, 1, timeout)) < 0) { if (errno != EINTR) return -1; } if( ret == 0 ) return 0; return pfd.revents; } I do not think that timeout recalculation is really necessary. This situation very rare. If we do not recalculate timeout, we would have just a bit longer timeout in very rare cases. The timeout is not so explicit requierments for most cases. On timeout recalculation, we would pay by one more system call to get system time before call "poll". Do you really stand on timeout recalculation ? -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.