poll: Prevent false-negative from WAKE_EVENT() on W32
authorРуслан Ижбулатов <lrn1986@gmail.com>
Sun, 27 Jul 2014 03:06:16 +0000 (03:06 +0000)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 28 Jul 2014 07:13:44 +0000 (09:13 +0200)
commitb87c55f6ed83e11a483f43d6bc29a9d4a79c786f
tree7f00eaee450f5d5b6aa0f617f85ee8db1a26a315
parent24080568a13bd5287730450d5223a79b9116425f
poll: Prevent false-negative from WAKE_EVENT() on W32

SetEvent() seems to not call SetLastError(0) internally, so checking last
error after calling SetEvent() may return the error from an earlier W32 API
call. Fix this by calling SetlastError(0) explicitly.

Currently WAKE_EVENT() code is cramped into a macro and doesn't look to be
entirely correct. Particularly, it does not check the return value of
SetEvent(), only the thread-local W32 error value. It is likely that SetEvent()
actually just returns non-zero value, but the code mistakenly thinks that the
call has failed, because GetLastError() seems to indicate so.

https://bugzilla.gnome.org/show_bug.cgi?id=733805
gst/gstpoll.c