diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2007-01-22 08:10:11 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2007-01-22 08:10:11 +0000 |
commit | 2a1835bfa4813590131f9da2d511bbbcdad15717 (patch) | |
tree | 73c58f4ac769cbe75554408d655dfde5bc1071fa /libsylph/session.c | |
parent | 3145665c922ead3c2de272eb0ad54c30c228046b (diff) |
prevented WSAEWOULDBLOCK on sending/receiving in Win32.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1500 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'libsylph/session.c')
-rw-r--r-- | libsylph/session.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libsylph/session.c b/libsylph/session.c index 73691dca..5ebb564d 100644 --- a/libsylph/session.c +++ b/libsylph/session.c @@ -276,8 +276,13 @@ static gboolean session_ping_cb(gpointer data) } if (tv_result.tv_sec * G_USEC_PER_SEC + tv_result.tv_usec > G_USEC_PER_SEC) { + SockFlags save_flags; + debug_print("state machine freeze for 1 second detected, forcing dispatch.\n"); + save_flags = sock->flags; + SOCK_UNSET_FLAGS(sock->flags, SOCK_CHECK_IO); sock->callback(sock, sock->condition, sock->data); + sock->flags = save_flags; } } |