pthread_sigqueue(): First parameter is incompatible with glibc

Mark Geisert mark@maxrnd.com
Fri Sep 13 05:42:46 GMT 2024


Hi Christian,

On 9/12/2024 9:21 AM, Christian Franke via Cygwin wrote:
> Cygwin /usr/include/pthread.h:
> 
> int pthread_sigqueue (pthread_t *, int, const union sigval);
> 
> Linux /usr/include/x86_64-linux-gnu/bits/sigthread.h:
> 
> extern int pthread_sigqueue (pthread_t __threadid, int __signo,
>                               const union sigval __value) __THROW;
> 
> 
> It is apparently the case since the very first related patch:
> https://sourceware.org/pipermail/cygwin-patches/2012q1/007565.html
> 
> RCS file: /cvs/src/src/winsup/cygwin/thread.cc,v
> ...
> +extern "C" int
> +pthread_sigqueue (pthread_t *thread, int sig, const union sigval value)
> +{

Thanks for the report. There's a couple things wrong that I can see 
right off the bat. The first param should indeed be "pthread_t", and the 
Cygwin code that implements the function should treat that first param 
as a thread id. Currently it's treated as a 'pthread_t *' to match the 
prototype.

I'll work on a patch for these issues.

..mark



More information about the Cygwin mailing list