[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: address@hidden: Re: Problem sending bigger mails with CVS Gnus + CVS
From: |
Tak Ota |
Subject: |
Re: address@hidden: Re: Problem sending bigger mails with CVS Gnus + CVS Emacs] |
Date: |
Tue, 21 May 2002 18:41:52 -0700 (PDT) |
Jason,
I've modified sys_write in the same manner that _sys_read_ahead
performs blocking IO then the problem disappeared. Is this a right
fix? The sys_write comment explicitly states that;
/* For now, don't bother with a non-blocking mode */
-Tak
*** emacs-21.2.50/src/w32.c Sat May 4 07:53:43 2002
--- w32.c Tue May 21 18:26:34 2002
***************
*** 2568,2573 ****
--- 2568,2574 ----
case WSAEMFILE: h_errno = EMFILE; break;
case WSAENAMETOOLONG: h_errno = ENAMETOOLONG; break;
case WSAENOTEMPTY: h_errno = ENOTEMPTY; break;
+ case WSAEWOULDBLOCK: h_errno = EAGAIN; break;
}
errno = h_errno;
}
***************
*** 3541,3548 ****
--- 3542,3561 ----
#ifdef HAVE_SOCKETS
if (fd_info[fd].flags & FILE_SOCKET)
{
+ unsigned long nblock = 0;
if (winsock_lib == NULL) abort ();
+
+ /* We always want this to block, so temporarily disable NDELAY. */
+ if (fd_info[fd].flags & FILE_NDELAY)
+ pfn_ioctlsocket (SOCK_HANDLE (fd), FIONBIO, &nblock);
+
nchars = pfn_send (SOCK_HANDLE (fd), buffer, count, 0);
+
+ if (fd_info[fd].flags & FILE_NDELAY)
+ {
+ nblock = 1;
+ pfn_ioctlsocket (SOCK_HANDLE (fd), FIONBIO, &nblock);
+ }
if (nchars == SOCKET_ERROR)
{
DebPrint(("sys_read.send failed with error %d on socket %ld\n",
- Re: address@hidden: Re: Problem sending bigger mails with CVS Gnus + CVS Emacs], (continued)
Re: address@hidden: Re: Problem sending bigger mails with CVS Gnus + CVS Emacs], Christoph Conrad, 2002/05/21
Re: address@hidden: Re: Problem sending bigger mails with CVS Gnus + CVS Emacs], Jason Rumney, 2002/05/19
Re: address@hidden: Re: Problem sending bigger mails with CVS Gnus + CVS Emacs], Jason Rumney, 2002/05/20
Re: address@hidden: Re: Problem sending bigger mails with CVS Gnus + CVS Emacs], Christoph Conrad, 2002/05/21