[Web-SIG] Web Site Process Bus

Joseph Tate jtate at rpath.com
Tue Jun 26 04:51:16 CEST 2007


On Monday 25 June 2007 20:32:38 Chad Whitacre wrote:
> All,
>
> >> Now I'm really confused.  What is the idle state *for*?
> >
> > One concrete use case could be a test suite ...
>
> Is this also where Joe's comment in Dallas fits, namely, the case
> where you want to hold open a socket while restarting a child
> process so as not to drop connections?

It's not so much a desire to not drop connections as to keep the socket file 
descriptor during a restart to prevent an asynchronous kernel call 
(socket.close()) from preventing your new process from reopening that socket.  
The frequent work around is to insert an arbitrary sleeps or loops on the 
socket.bind call, but I store the file descriptor as an environment variable 
and reconnect to the existing socket after the exec call.  This is a problem 
on Linux at least, and probably all POSIX systems.  Having the kernel queue 
up connections is an added bonus.

I do think this is a good example of what the IDLE state could be used for.

-- 
Joseph Tate
Software Engineer
rPath Inc.
http://www.rpath.com/rbuilder/
(919) 851-3984 x2106


More information about the Web-SIG mailing list