projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert 67496 as it makes running Paint.NET impossible
[mono.git]
/
support
/
serial.c
diff --git
a/support/serial.c
b/support/serial.c
index c0d2dbdae9fab589a295a44bd69b2f93b30f7a4f..34d3943142d064db85829fb41129aef88ee0092d 100644
(file)
--- a/
support/serial.c
+++ b/
support/serial.c
@@
-11,6
+11,7
@@
#include <string.h>
#include <sys/poll.h>
#include <sys/ioctl.h>
#include <string.h>
#include <sys/poll.h>
#include <sys/ioctl.h>
+#include <errno.h>
#include <glib.h>
#include <glib.h>
@@
-322,7
+323,7
@@
set_signal (int fd, MonoSerialSignal signal, gboolean value)
}
gboolean
}
gboolean
-poll_serial (int fd, gint32 *error)
+poll_serial (int fd, gint32 *error
, int timeout
)
{
struct pollfd pinfo;
{
struct pollfd pinfo;
@@
-332,7
+333,10
@@
poll_serial (int fd, gint32 *error)
pinfo.events = POLLIN;
pinfo.revents = 0;
pinfo.events = POLLIN;
pinfo.revents = 0;
- if (poll (&pinfo, 1, 0) == -1) {
+ if (poll (&pinfo, 1, timeout) == -1) {
+ /* EINTR is an OK condition, we should not throw in the upper layer an IOException */
+ if (errno == EINTR)
+ return FALSE;
*error = -1;
return FALSE;
}
*error = -1;
return FALSE;
}