[lug] socket programming/kernel question
Zan Lynx
zlynx at acm.org
Wed Mar 5 15:33:59 MST 2003
On Wed, 2003-03-05 at 15:13, Bear Giles wrote:
> Michael J. Hammel wrote:
> > On Wed, 2003-03-05 at 12:17, Bear Giles wrote:
> >> Information needs to go down the rabbit hole. Stream protocols
> >>would tell me this, but require me to keep the stream open for the
> >>lifetime of the process even if days pass without use.
> >
> > Depends on your runtime environment, but why would keeping these open
> > for such a long time be a problem?
>
> If the streams are kept open, the server can't cycle without
> taking out all of the clients. I'm not expecting to need to cycle
> the server, but if we're talking about something that may be up
> for months it's a real concern.
Actually it can cycle. Now, this is sort of crazy and whacked, but bear
with me :-)
The server gets a shutdown request or a signal (You _can_ catch SIGBUS,
SIGILL, and SIGSEGV for this) and execs a process that will hold state
for it. This includes the still open sockets. Then, when this tiny
state-holder process gets a signal, like SIGUSR1, it execs the original
again, with flags to tell it to resume state. It can use a connection
log file or a bit of shared memory to figure out what file descriptors
point where.
Neat, huh? I saw this used in some MUD code.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.lug.boulder.co.us/pipermail/lug/attachments/20030305/fddf1045/attachment.pgp>
More information about the LUG
mailing list