-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 15 Oct, 2010, at 02:50 , John Gilmore wrote:

>> -        bytesSent = ::send(_socket, buf, toWrite, MSG_NOSIGNAL);
>> +        // I'd like to get no SIGPIPE here, as we wouldn't
>> +        // know how to handle. Instead, for broken pipe I'd
>> +        // prefer being notified with a return of -1.
>> +        // Is that possible, in a standard way ?
>> +        // MSG_NOSIGNAL was reported as being non-standard flag..
>> +        bytesSent = ::send(_socket, buf, toWrite, 0);
> 
> The usual way is to do:
> 
>    signal(SIGPIPE, SIG_IGN);
> 
> which says to ignore that signal rather than deliver it.  This is a
> stateful setting, which remains set until the process ends or you
> change it.  This is a portable construct (though most other uses
> of signal() are not portable).

I think sigaction() is preferable under any circumstances even though
this one is portable. The problem is that sighandler_t is a GNU libc
extension which isn't defined in BSD libc etc. However we can define it
pretty easy as a pointer to a callback.

> 
> The return value can be used to re-establish the former SIGPIPE
> handler if you want; or it can just be thrown away if you're doing
> this in mainline (rather than library) code and you know you don't
> ever want to restore the default or former setting.
> 

Yes, this is an issue with signal() and return values, which must be taken
care of as a callback-pointer.

>       John
> 

I'll digg into sigaction() later tonite if those damn headhunters stop calling 
me. ;-)

//Markus
> _______________________________________________
> Gnash-dev mailing list
> [email protected]
> http://lists.gnu.org/mailman/listinfo/gnash-dev

//Markus - The panama-hat hacker

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)

iD8DBQFMvBu56I0XmJx2NrwRAsdHAJ9ywdcwSCiA0Zpq8V0FgPUY3dnyUACcCmyC
XFJ4HOf4A0zgODfEAQG2MhU=
=MRf6
-----END PGP SIGNATURE-----

_______________________________________________
Gnash-dev mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnash-dev

Reply via email to