The following "toy" code represents a problem I am having in a larger code base using POSIX timers.
#include <time.h>
#include <errno.h>
#include <signal.h>
#include <iostream>
using namespace std;
int main()
{
struct sigevent sevp;
long threadId = 5;
sevp.sigev_notify = SIGEV_THREAD_ID;
sevp.sigev_notify_thread_id = threadId;
return 0;
}
When I try to compile it using g++
on a Linux machine I get the error:
error: ‘struct sigevent’ has no member named ‘sigev_notify_thread_id’
Is there a reason why? This leads me to believe that the sigevent
struct has a member called sigev_notify_thread_id
.
Changing sevp.sigev_notify_thread_id
to sevp._sigev_un._tid
fixed my problem. You can see the definition on line 295 here.
Thanks to @Duck for the helpful comment.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With