Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Jun 1997 21:29:13 -0700 (MST)
From:      Richard Straka <straka@user1.inficad.com>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        current@freebsd.org
Subject:   Re: sio driver performance
Message-ID:  <Pine.BSI.3.96.970610212632.13653B-100000@user1.inficad.com>
In-Reply-To: <199706070431.OAA28487@godzilla.zeta.org.au>

next in thread | previous in thread | raw e-mail | index | archive | help

> >I have noticed that the communications work great until I interrupt the
> >process on the box which is tranmitting the data.  At that point, the box
> >which was receiving suddenly elevates to 100% CPU usage (mostly system) as
> >if in a polling loop. When I attempt to reestablish the process which is
> 
> Hangup on the tranmitter breaks the connection.  There is no way (*) to
> get the same connection back - reads on the open fd will return -1/EIO
> forever.  (Reads should return 0, but there is a minor bug that prevents
> this in some cases.  POSIX allows either EOF (0) or -1/EIO.)
> 
> You need to clear HUPCL on the transmitter or set CLOCAL on the receiver
> to avoid seeing the hangup.  Using CLOCAL is often required to avoid
> unwanted POSIX connection semantics.  Then you have to monitor the carrier 
> status directly by polling it if you care about it.
> 
> (*) actually there is a nonstandard way involving toggling CLOCAL.  Don't
> use it.
> 

Setting CLOCAL on the receiver has worked like a charm. Thanks for the
help and thanks to everyone else who responded to my question.


Richard Straka
straka@inficad.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSI.3.96.970610212632.13653B-100000>