File xfce4-mailwatch-plugin-1.1.0-fix-high-cpu-usage-while-checking-mail.patch of Package xfce4-panel-plugins
diff -ur xfce4-mailwatch-plugin-1.1.0.orig/libmailwatch-core/mailwatch-net-conn.c xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatch-net-conn.c
--- xfce4-mailwatch-plugin-1.1.0.orig/libmailwatch-core/mailwatch-net-conn.c 2008-09-15 07:14:45.000000000 +0200
+++ xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatch-net-conn.c 2010-12-05 11:13:09.000000000 +0100
@@ -765,10 +765,16 @@
return -1;
} else if(!block)
return 0;
- } while(ret < 0 && EINTR == errno && !TIMER_EXPIRED(RECV_TIMEOUT)
- && SHOULD_CONTINUE(net_conn));
+ } while((ret == 0 || (ret < 0 && EINTR == errno))
+ && !TIMER_EXPIRED(RECV_TIMEOUT) && SHOULD_CONTINUE(net_conn));
- if(!SHOULD_CONTINUE(net_conn)) {
+ if(ret < 0 && EINTR != errno) {
+ if(error) {
+ g_set_error(error, XFCE_MAILWATCH_ERROR,
+ XFCE_MAILWATCH_ERROR_FAILED, strerror(errno));
+ }
+ return -1;
+ } else if(!SHOULD_CONTINUE(net_conn)) {
if(error) {
g_set_error(error, XFCE_MAILWATCH_ERROR,
XFCE_MAILWATCH_ERROR_ABORTED, _("Operation aborted"));