poll: Fix WAKE_EVENT() to behave posixly on Windows
authorРуслан Ижбулатов <lrn1986@gmail.com>
Wed, 25 May 2011 08:47:51 +0000 (12:47 +0400)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 25 May 2011 10:04:14 +0000 (12:04 +0200)
gst/gstpoll.c

index 76a7a30e6ab142da07c6c805e229ec592f65ffb3..8bb282a92f0a977264a47006e99d8b7d5a11db5c 100644 (file)
@@ -165,7 +165,7 @@ static gboolean gst_poll_add_fd_unlocked (GstPoll * set, GstPollFD * fd);
 #define WAKE_EVENT(s)       (write ((s)->control_write_fd.fd, "W", 1) == 1)
 #define RELEASE_EVENT(s)    (read ((s)->control_read_fd.fd, (s)->buf, 1) == 1)
 #else
-#define WAKE_EVENT(s)       (SetEvent ((s)->wakeup_event))
+#define WAKE_EVENT(s)       (SetEvent ((s)->wakeup_event), errno = GetLastError () == NO_ERROR ? 0 : EACCES, errno == 0 ? 1 : 0)
 #define RELEASE_EVENT(s)    (ResetEvent ((s)->wakeup_event))
 #endif