Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Jun 1998 13:51:39 +0200 (CEST)
From:      Marino Ladavac <lada@pc8811.gud.siemens.at>
To:        Greg Lehey <grog@lemis.com>
Cc:        mkn <mkn@emailbox.hdtv.lucent.com>, freebsd-questions@FreeBSD.ORG, FreeBSD Hackers <hackers@FreeBSD.ORG>
Subject:   Re: Unsupport calls
Message-ID:  <XFMail.980630135139.lada@pc8811.gud.siemens.at>
In-Reply-To: <19980630192910.H1880@freebie.lemis.com>

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

On 30-Jun-98 Greg Lehey wrote:
> On Tuesday, 30 June 1998 at  9:54:10 +0200, Marino Ladavac wrote:
>>
>> On 30-Jun-98 Greg Lehey wrote:
>>>
>>>> sigwait - no support in FreeBSD.
>>>> sigset - no support in FreeBSD
>>>> sighold - no support in FreeBSD
>>>> sigrelse - no support in FreeBSD
>>>
>>> These are the System V signal functions, arguably the worst choice of
>>> the currently available signal implementations.  FreeBSD has the BSD
>>> functions instead, as well as the POSIX.1 signals which were derived
>>> from them.  See more about this in my book "Porting UNIX software".  I
>>> recommend porting to the POSIX.1 signals, which are also supported by
>>> Solaris.
>>>
>> sigwait is in libc_r, being a part of POSIX pthread specification.
> 
> That's a different sigwait.  This one is, by association, one of the
> calls of the System V signals implementation.
> 

I beg to differ (and so do my SunOS 5 manpages).  The SysV simplified signal
management APIs are:

signal(3C)             C Library Functions             signal(3C)

NAME
     signal, sigset, sighold,  sigrelse,  sigignore,  sigpause  -
     simplified signal management for application processes

whereas:

sigwait(2)                System Calls                 sigwait(2)

NAME
     sigwait - wait until a signal is posted

SYNOPSIS
     #include <signal.h>

     int sigwait(sigset_t *set);

  POSIX
  ^^^^^
     cc  [  flag...  ]  file  ...  - D_POSIX_PTHREAD_SEMANTICS  [
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
     library... ]

     #include <signal.h>

     int sigwait(const sigset_t *set, int *sig);

DESCRIPTION
     sigwait() selects a signal in set that  is  pending  on  the
     calling thread (see thr_create(3T)) or LWP.  If no signal in
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

It is the very same sigwait() that resides in libc_r on FreeBSD, name
similarities notwithstanding.  Non-POSIX version is from the now
deprecated SunOS 5 LWP API.

> Greg
> --
> See complete headers for address and phone numbers
> finger grog@lemis.com for PGP public key
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-hackers" in the body of the message

----------------------------------
Marino Ladavac
Date: 30-Jun-98
Time: 13:42:21
----------------------------------

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.980630135139.lada>