Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: broken pipes
>>>>[From Tyler Van Gorder]
hmmm, Mark you said that this problem had been fixed? I seem to still
be getting broken pipes when in server mode a person is coming in...and
another person is entering an exit.
yeah, pipe problems are ikcy. presuming that it's related to just the
plain old
"display connection lost " problem...
I fixed the problem with soda's server a long time ago, in crossedit 0.5
or something. I submitted the patches to frank but obviously they didn't
get used.
I have stopped working on actual code now, so I think the changes might
have disappeared in the latest upgrade that soda folks did, presuming
they abandonded the old code.
As far as I remember, you have to fiddle with the part about
XIOErrorHandler. Xt is simply NOT happy about using multiple displays, a
reason which makes me support client/server very strongly.
The problem being that for some stupid reason, when a display connection
dies, a SIGPIPE signal is sent to the client.
The status quo of handling it at the time was using setjmp. It was making
the wrong calls to continue the program, so I cleaning it up as best I
could, but it was very messy, and not 100% stable, since the setjmp was
not in a good place.
(the stack nesting, etc, was bad bad bad)
The following is the product of a mind without enough sleep.. beware...
On reflection, there might be some gain to putting in a setjmp at another
cleaner position, and having the Xerrorhandler send a USR1, to have
another handler jump to the better place...
Oh wait, now I remember the problem.
The mucho grande problem:
Xt expects the Xerror signal handler NEVER TO RETURN. If it does, the
program dies!!!
Philip
- References:
- broken pipes
- From: Tyler Van Gorder <tvangod@ecst.csuchico.edu>