* [musl] pthread_sigqueue implementation
@ 2024-08-02 13:54 Daniele GMail
2024-08-02 14:04 ` Rich Felker
0 siblings, 1 reply; 7+ messages in thread
From: Daniele GMail @ 2024-08-02 13:54 UTC (permalink / raw)
To: musl
Hi,
don't know if this is the right place to ask the question, if it's not,
I'd hope someone points me out to the right list.
I'm working on the porting of a C multithreaded application which, up
to now, was running on GLibC based Linux distros. Such application is
using the method pthread_sigqueue in order to deliver signals to
certain threads and AFAICS, it is not present in 1.2.5 release.
I see a discussion about the implementation dated back to 2020: see
https://www.openwall.com/lists/musl/2020/02/05/5
Would it be possible to reconsider the decision to drop the method?
If not, do you have suggestions about what could be used in place of
it?
Thanks in advance,
Daniele.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [musl] pthread_sigqueue implementation
2024-08-02 13:54 [musl] pthread_sigqueue implementation Daniele GMail
@ 2024-08-02 14:04 ` Rich Felker
2024-08-02 14:13 ` enh
2024-08-02 14:21 ` Daniele GMail
0 siblings, 2 replies; 7+ messages in thread
From: Rich Felker @ 2024-08-02 14:04 UTC (permalink / raw)
To: Daniele GMail; +Cc: musl
On Fri, Aug 02, 2024 at 03:54:02PM +0200, Daniele GMail wrote:
> Hi,
> don't know if this is the right place to ask the question, if it's not,
> I'd hope someone points me out to the right list.
>
> I'm working on the porting of a C multithreaded application which, up
> to now, was running on GLibC based Linux distros. Such application is
> using the method pthread_sigqueue in order to deliver signals to
> certain threads and AFAICS, it is not present in 1.2.5 release.
>
> I see a discussion about the implementation dated back to 2020: see
> https://www.openwall.com/lists/musl/2020/02/05/5
>
> Would it be possible to reconsider the decision to drop the method?
> If not, do you have suggestions about what could be used in place of
> it?
I don't think it was really dropped, but things around it were just
never resolved. I re-read the thread and my main concern would be
namespacing, that it's not _np suffixed, while only glibc and recent
Solaris (or whatever it's called now) implement a function by this
name.
I think it would be noncontroversial to add with _np suffix, where
applications could probe for that and use it (or do their own #define
pthread_sigqueue pthread_sigqueue_np or whatever) if they need the
functionality. But I don't want to get locked into a situation where
we've added something POSIX may later define with possibly subtle
differences in signature or semantics.
Alternatively, if anyone wants to go ahead with proposing this as an
addition to POSIX, having it approved for POSIX-future with matching
signature and behavior should make it fine to add under the existing
name.
Rich
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [musl] pthread_sigqueue implementation
2024-08-02 14:04 ` Rich Felker
@ 2024-08-02 14:13 ` enh
2024-08-02 17:38 ` enh
2024-08-02 14:21 ` Daniele GMail
1 sibling, 1 reply; 7+ messages in thread
From: enh @ 2024-08-02 14:13 UTC (permalink / raw)
To: musl; +Cc: Daniele GMail
[-- Attachment #1: Type: text/plain, Size: 1880 bytes --]
i haven't checked the source, but this implies it is in FreeBSD:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278459
On Fri, Aug 2, 2024, 10:08 Rich Felker <dalias@libc.org> wrote:
> On Fri, Aug 02, 2024 at 03:54:02PM +0200, Daniele GMail wrote:
> > Hi,
> > don't know if this is the right place to ask the question, if it's not,
> > I'd hope someone points me out to the right list.
> >
> > I'm working on the porting of a C multithreaded application which, up
> > to now, was running on GLibC based Linux distros. Such application is
> > using the method pthread_sigqueue in order to deliver signals to
> > certain threads and AFAICS, it is not present in 1.2.5 release.
> >
> > I see a discussion about the implementation dated back to 2020: see
> > https://www.openwall.com/lists/musl/2020/02/05/5
> >
> > Would it be possible to reconsider the decision to drop the method?
> > If not, do you have suggestions about what could be used in place of
> > it?
>
> I don't think it was really dropped, but things around it were just
> never resolved. I re-read the thread and my main concern would be
> namespacing, that it's not _np suffixed, while only glibc and recent
> Solaris (or whatever it's called now) implement a function by this
> name.
>
> I think it would be noncontroversial to add with _np suffix, where
> applications could probe for that and use it (or do their own #define
> pthread_sigqueue pthread_sigqueue_np or whatever) if they need the
> functionality. But I don't want to get locked into a situation where
> we've added something POSIX may later define with possibly subtle
> differences in signature or semantics.
>
> Alternatively, if anyone wants to go ahead with proposing this as an
> addition to POSIX, having it approved for POSIX-future with matching
> signature and behavior should make it fine to add under the existing
> name.
>
> Rich
>
[-- Attachment #2: Type: text/html, Size: 2514 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [musl] pthread_sigqueue implementation
2024-08-02 14:04 ` Rich Felker
2024-08-02 14:13 ` enh
@ 2024-08-02 14:21 ` Daniele GMail
1 sibling, 0 replies; 7+ messages in thread
From: Daniele GMail @ 2024-08-02 14:21 UTC (permalink / raw)
To: Rich Felker; +Cc: musl
On Fri, 2024-08-02 at 10:04 -0400, Rich Felker wrote:
> On Fri, Aug 02, 2024 at 03:54:02PM +0200, Daniele GMail wrote:
> > Hi,
> > don't know if this is the right place to ask the question, if it's
> > not,
> > I'd hope someone points me out to the right list.
> >
> > I'm working on the porting of a C multithreaded application which,
> > up
> > to now, was running on GLibC based Linux distros. Such application
> > is
> > using the method pthread_sigqueue in order to deliver signals to
> > certain threads and AFAICS, it is not present in 1.2.5 release.
> >
> > I see a discussion about the implementation dated back to 2020: see
> > https://www.openwall.com/lists/musl/2020/02/05/5
> >
> > Would it be possible to reconsider the decision to drop the method?
> > If not, do you have suggestions about what could be used in place
> > of
> > it?
>
> I don't think it was really dropped, but things around it were just
> never resolved. I re-read the thread and my main concern would be
> namespacing, that it's not _np suffixed, while only glibc and recent
> Solaris (or whatever it's called now) implement a function by this
> name.
>
> I think it would be noncontroversial to add with _np suffix, where
> applications could probe for that and use it (or do their own #define
> pthread_sigqueue pthread_sigqueue_np or whatever) if they need the
> functionality. But I don't want to get locked into a situation where
> we've added something POSIX may later define with possibly subtle
> differences in signature or semantics.
>
> Alternatively, if anyone wants to go ahead with proposing this as an
> addition to POSIX, having it approved for POSIX-future with matching
> signature and behavior should make it fine to add under the existing
> name.
>
> Rich
If the problem is the namespacing only, I'd say that having the _np is
super ok.
For us it'd really be great if the method is implemented in the next
releases.
Daniele.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [musl] pthread_sigqueue implementation
2024-08-02 14:13 ` enh
@ 2024-08-02 17:38 ` enh
2024-09-06 13:58 ` Daniele GMail
0 siblings, 1 reply; 7+ messages in thread
From: enh @ 2024-08-02 17:38 UTC (permalink / raw)
To: musl; +Cc: Daniele GMail
having now looked, yes, freebsd does have pthread_sigqueue().
oh, and fwiw, bionic also has pthread_sigqueue(), also without the _np...
funnily enough, FreeBSD marks it as a BSD extension for _BSD_SOURCE,
and bionic as a GNU extension for _GNU_SOURCE.
while macOS _does_ have an SI_QUEUE constant, they have neither
pthread_sigqueue() nor even sigqueue().
On Fri, Aug 2, 2024 at 10:13 AM enh <enh@google.com> wrote:
>
> i haven't checked the source, but this implies it is in FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278459
>
> On Fri, Aug 2, 2024, 10:08 Rich Felker <dalias@libc.org> wrote:
>>
>> On Fri, Aug 02, 2024 at 03:54:02PM +0200, Daniele GMail wrote:
>> > Hi,
>> > don't know if this is the right place to ask the question, if it's not,
>> > I'd hope someone points me out to the right list.
>> >
>> > I'm working on the porting of a C multithreaded application which, up
>> > to now, was running on GLibC based Linux distros. Such application is
>> > using the method pthread_sigqueue in order to deliver signals to
>> > certain threads and AFAICS, it is not present in 1.2.5 release.
>> >
>> > I see a discussion about the implementation dated back to 2020: see
>> > https://www.openwall.com/lists/musl/2020/02/05/5
>> >
>> > Would it be possible to reconsider the decision to drop the method?
>> > If not, do you have suggestions about what could be used in place of
>> > it?
>>
>> I don't think it was really dropped, but things around it were just
>> never resolved. I re-read the thread and my main concern would be
>> namespacing, that it's not _np suffixed, while only glibc and recent
>> Solaris (or whatever it's called now) implement a function by this
>> name.
>>
>> I think it would be noncontroversial to add with _np suffix, where
>> applications could probe for that and use it (or do their own #define
>> pthread_sigqueue pthread_sigqueue_np or whatever) if they need the
>> functionality. But I don't want to get locked into a situation where
>> we've added something POSIX may later define with possibly subtle
>> differences in signature or semantics.
>>
>> Alternatively, if anyone wants to go ahead with proposing this as an
>> addition to POSIX, having it approved for POSIX-future with matching
>> signature and behavior should make it fine to add under the existing
>> name.
>>
>> Rich
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [musl] pthread_sigqueue implementation
2024-08-02 17:38 ` enh
@ 2024-09-06 13:58 ` Daniele GMail
2024-10-23 0:45 ` Rich Felker
0 siblings, 1 reply; 7+ messages in thread
From: Daniele GMail @ 2024-09-06 13:58 UTC (permalink / raw)
To: enh, musl
Good day,
sorry to bother you, I know you have a lot of things boiling and this
is just another one on the pile.
But since I didn't see any other mail related to this thread I just
wanted to know if I can contribute in some way to help.
Thanks in advance,
Daniele.
On Fri, 2024-08-02 at 13:38 -0400, enh wrote:
> having now looked, yes, freebsd does have pthread_sigqueue().
>
> oh, and fwiw, bionic also has pthread_sigqueue(), also without the
> _np...
>
> funnily enough, FreeBSD marks it as a BSD extension for _BSD_SOURCE,
> and bionic as a GNU extension for _GNU_SOURCE.
>
> while macOS _does_ have an SI_QUEUE constant, they have neither
> pthread_sigqueue() nor even sigqueue().
>
> On Fri, Aug 2, 2024 at 10:13 AM enh <enh@google.com> wrote:
> >
> > i haven't checked the source, but this implies it is in FreeBSD:
> > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278459
> >
> > On Fri, Aug 2, 2024, 10:08 Rich Felker <dalias@libc.org> wrote:
> > >
> > > On Fri, Aug 02, 2024 at 03:54:02PM +0200, Daniele GMail wrote:
> > > > Hi,
> > > > don't know if this is the right place to ask the question, if
> > > > it's not,
> > > > I'd hope someone points me out to the right list.
> > > >
> > > > I'm working on the porting of a C multithreaded application
> > > > which, up
> > > > to now, was running on GLibC based Linux distros. Such
> > > > application is
> > > > using the method pthread_sigqueue in order to deliver signals
> > > > to
> > > > certain threads and AFAICS, it is not present in 1.2.5 release.
> > > >
> > > > I see a discussion about the implementation dated back to 2020:
> > > > see
> > > > https://www.openwall.com/lists/musl/2020/02/05/5
> > > >
> > > > Would it be possible to reconsider the decision to drop the
> > > > method?
> > > > If not, do you have suggestions about what could be used in
> > > > place of
> > > > it?
> > >
> > > I don't think it was really dropped, but things around it were
> > > just
> > > never resolved. I re-read the thread and my main concern would be
> > > namespacing, that it's not _np suffixed, while only glibc and
> > > recent
> > > Solaris (or whatever it's called now) implement a function by
> > > this
> > > name.
> > >
> > > I think it would be noncontroversial to add with _np suffix,
> > > where
> > > applications could probe for that and use it (or do their own
> > > #define
> > > pthread_sigqueue pthread_sigqueue_np or whatever) if they need
> > > the
> > > functionality. But I don't want to get locked into a situation
> > > where
> > > we've added something POSIX may later define with possibly subtle
> > > differences in signature or semantics.
> > >
> > > Alternatively, if anyone wants to go ahead with proposing this as
> > > an
> > > addition to POSIX, having it approved for POSIX-future with
> > > matching
> > > signature and behavior should make it fine to add under the
> > > existing
> > > name.
> > >
> > > Rich
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [musl] pthread_sigqueue implementation
2024-09-06 13:58 ` Daniele GMail
@ 2024-10-23 0:45 ` Rich Felker
0 siblings, 0 replies; 7+ messages in thread
From: Rich Felker @ 2024-10-23 0:45 UTC (permalink / raw)
To: Daniele GMail; +Cc: enh, musl, Daniel Fahlgren
On Fri, Sep 06, 2024 at 03:58:55PM +0200, Daniele GMail wrote:
> Good day,
> sorry to bother you, I know you have a lot of things boiling and this
> is just another one on the pile.
>
> But since I didn't see any other mail related to this thread I just
> wanted to know if I can contribute in some way to help.
I'm looking back at the patch from
https://www.openwall.com/lists/musl/2020/02/05/5/1 for possible
inclusion (either in the _np namespace or as-is) and it seems to be
missing the signal blocking pthread_kill has, which is needed to
access the killlock safely. Oddly it still has the "set" local, which
is unused, so it looks like this was intentionally removed..? I think
it should just be added back, and then we should figure out which
name(s) this should be added with..
Rich
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-10-23 0:45 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-02 13:54 [musl] pthread_sigqueue implementation Daniele GMail
2024-08-02 14:04 ` Rich Felker
2024-08-02 14:13 ` enh
2024-08-02 17:38 ` enh
2024-09-06 13:58 ` Daniele GMail
2024-10-23 0:45 ` Rich Felker
2024-08-02 14:21 ` Daniele GMail
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).