Date: Mon, 23 Sep 2002 16:45:26 +0300 From: Peter Pentchev <roam@ringlet.net> To: Vladimir Terziev <vladimirt@rila.bg> Cc: hackers@FreeBSD.org Subject: Re: Problems catching SIGPIPE when writing to a broken stream Message-ID: <20020923134526.GE361@straylight.oblivion.bg> In-Reply-To: <20020923134225.GD361@straylight.oblivion.bg> References: <20020923163418.216b14ae.vladimirt@rila.bg> <20020923134225.GD361@straylight.oblivion.bg>
next in thread | previous in thread | raw e-mail | index | archive | help
--0ntfKIWw70PvrIHh Content-Type: text/plain; charset=windows-1251 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Sep 23, 2002 at 04:42:25PM +0300, Peter Pentchev wrote: > On Mon, Sep 23, 2002 at 04:34:18PM +0300, Vladimir Terziev wrote: > >=20 > > Hi hackers, > >=20 > > I'm implementing a programmme, which writes a big amount of data (usin= g write(2)) to a socket. > > When the communication stream has been closed by some reason, during t= he write(2) call, my process receives SIGPIPE. I tryed to catch it with sig= nal(3) and change the behaviour of write(2) call with siginterrupt(3), but = SIGPIPE is still raised to my process and terminates it. > >=20 > > Any help and ideas will be useful! >=20 > You should receive a short write(2) before the SIGPIPE is sent, most > probably a write() which returns -1 and sets errno to, say, ECONNRESET > or something like that. Are you sure *all* your previous writes return > as many bytes as you have tried to write? Hit ':wq' too fast ;) You might want to look into scheduling your write(2) calls only when possible, using either select(2) or poll(2) to check the network socket for writability. G'luck, Peter PS. Wow. 'look writa' returned both 'writable' and 'writability'. 'look writea' returned 'writeable', but not 'writeability'. Strike another one for English grammar ;) --=20 Peter Pentchev roam@ringlet.net roam@FreeBSD.org PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 I've heard that this sentence is a rumor. --0ntfKIWw70PvrIHh Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (FreeBSD) iD8DBQE9jxr27Ri2jRYZRVMRAol/AJ4jNURWIVJuK9UHMDvjTBI3RoirgwCfcPHc ex0WrqOwq9XaZ7VDgp4tRRU= =7GFP -----END PGP SIGNATURE----- --0ntfKIWw70PvrIHh-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020923134526.GE361>