--MimeMultipartBoundary
Content-Type: text/plain; charset=us-ascii
Hiya,
This is a followup to Michael @ IINET's patch about Linux threads
never blocking on a network socket close. It turns that that Solaris only
blocks on some itself, so invoking a thread for each network socket close
is excessive, as the blocking condition can be pre-determined using fcntl.
An fcntl is always going to be cheaper than a thread, so the following
patch to comm_close in comm.c (1.2 beta20) fixes excessive thread use for
close() of network sockets when using async.
Cheers,
Stew.
===================================================================
RCS file: RCS/comm.c,v
retrieving revision 1.1
diff -r1.1 comm.c
4c4
< * $Id: comm.c,v 1.1 1998/05/13 00:21:24 slf Exp slf $
--- > * $Id: comm.c,v 1.252 1998/04/24 07:09:31 wessels Exp $ 624a625,628 > #ifdef USE_ASYNC_IO > int flags; > int dummy = 0; > #endif 649c653,660 < aioClose(fd); --- > if((flags = fcntl(fd, F_GETFL, dummy)) < 0) > aioClose(fd); > else { > if(flags & SQUID_NONBLOCK) > close(fd); > else > aioClose(fd); > } --MimeMultipartBoundary--Received on Tue Jul 29 2003 - 13:15:49 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:11:47 MST