Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: broken pipes
- To: (Tyler Van Gorder)
- Subject: Re: broken pipes
- From: Philip Brown <>
- Date: Wed, 23 Mar 1994 19:58:35 -0800 (PST)
- Cc: crossfire (at) ifi.uio.no
- In-Reply-To: <> from "Tyler Van Gorder" at Mar 23, 94 06:42:26 pm
>>>>[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