This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
Re: sigaddset() should return 0 or -1
- To: gnu-win32 at cygnus dot com
- Subject: Re: sigaddset() should return 0 or -1
- From: cgf at cygnus dot com (Christopher G. Faylor)
- Date: 5 May 1998 13:09:58 GMT
- Newsgroups: cygnus.gnu-win32
- Organization: Cygnus Solutions
- References: <354f6e0e.431563721.cygnus.gnu-win32@10.0.2.3>
- Stamped: newsgate-cygnus
In article <354f6e0e.431563721.cygnus.gnu-win32@10.0.2.3>,
Richard Hitt <rbh00@netcom.com> wrote:
>I'm porting an application that expects sigaddset() to return 0 if it
>worked. But in the CDK, sigaddset is implemented by a macro that
>doesn't care what it returns. The file is
>/cygnus/b19/H-i386-cygwin32/i386-cygwin32/include/sys/signal.h.
>The macro is
>#define sigaddset(what,sig) (*(what) |= (1<<(sig)))
>
>So I changed it to always return 0:
>#define sigaddset(what,sig) ((*(what) |= (1<<(sig))),0)
>
>and avoided an unpleasant hack in my application. May I suggest that
>you consider incorporating this change in your signal.h? Or, for all
>I know, there may be other considerations why the macro must be as it
>is.
>
>Thanks for a fine environment.
Actually, as far as I can tell, this is a bug. sigaddset and sigemptyset
are proper functions, exported by cygwinb19.dll. I'm going to remove the
defines in favor of the functions. In my version of the tools, there
are actually declarations for sig{add,empty}set but they are commented out.
I'd suggest removing the macros and uncommenting these declarations.
That will probably work as you expect.
--
cgf@cygnus.com "Everything has a boolean value, if you stand
http://www.cygnus.com/ far enough away from it." -- Galena Alyson Canada
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".