[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r5161 - GNUnet/src/util/network
From: |
gnunet |
Subject: |
[GNUnet-SVN] r5161 - GNUnet/src/util/network |
Date: |
Thu, 28 Jun 2007 12:35:21 -0600 (MDT) |
Author: durner
Date: 2007-06-28 12:35:21 -0600 (Thu, 28 Jun 2007)
New Revision: 5161
Modified:
GNUnet/src/util/network/select.c
Log:
try to set pipe to non-blocking on Win32
Modified: GNUnet/src/util/network/select.c
===================================================================
--- GNUnet/src/util/network/select.c 2007-06-28 07:11:31 UTC (rev 5160)
+++ GNUnet/src/util/network/select.c 2007-06-28 18:35:21 UTC (rev 5161)
@@ -763,21 +763,16 @@
return NULL;
}
-static int makeNonblocking(struct GE_Context * ectx,
+static int makePipeNonblocking(struct GE_Context * ectx,
int handle) {
#if MINGW
- if (ioctlsocket(handle,
- FIONBIO,
- (u_long FAR*) 1) == SOCKET_ERROR) {
- SetErrnoFromWinsockError(WSAGetLastError());
- GE_LOG_STRERROR(ectx,
- GE_WARNING | GE_USER | GE_ADMIN | GE_IMMEDIATE,
- "ioctlsocket");
- return SYSERR;
- } else {
- /* store the blocking mode */
+ DWORD mode;
+
+ mode = PIPE_NOWAIT;
+
+ if (SetNamedPipeHandleState((HANDLE) handle, &mode, NULL, NULL))
__win_SetHandleBlockingMode(handle, 0);
- }
+ /* don't report errors because Win9x doesn't support
SetNamedPipeHandleState() */
#else
int flags = fcntl(handle, F_GETFL);
flags |= O_NONBLOCK;
@@ -843,9 +838,7 @@
FREE(sh);
return NULL;
}
- /* pipes are always blocking on Win32 */
-#ifndef MINGW
- if (OK != makeNonblocking(sh->ectx,
+ if (OK != makePipeNonblocking(sh->ectx,
sh->signal_pipe[0])) {
if ( (0 != CLOSE(sh->signal_pipe[0])) ||
(0 != CLOSE(sh->signal_pipe[1])) )
@@ -855,7 +848,7 @@
FREE(sh);
return NULL;
}
-#endif
+
sh->shutdown = NO;
sh->ectx = ectx;
sh->load_monitor = mon;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r5161 - GNUnet/src/util/network,
gnunet <=