Signals & Timers
Signals
rt_sigaction
Supported functionality in SCML:
// Change and/or retrieve a signal action
rt_sigaction(
signum,
act = {
sa_flags = SA_ONSTACK | SA_RESTART | SA_NODEFER | SA_RESTORER | SA_SIGINFO | SA_RESETHAND,
..
},
oldact, sigsetsize
);
Unsupported sigaction
flags:
SA_NOCLDSTOP
SA_NOCLDWAIT
For more information, see the man page.
rt_sigprocmask
Supported functionality in SCML:
// Change and/or retrieve blocked signals
rt_sigprocmask(
how = SIG_BLOCK | SIG_UNBLOCK | SIG_SETMASK, set, oldset, sigsetsize
);
For more information, see the man page.
POSIX Interval Timers
timer_create
Supported functionality in SCML:
opt_notify_methods = SIGEV_NONE | SIGEV_SIGNAL | SIGEV_THREAD_ID;
// Create a timer with predefined clock source
timer_create(
clockid = CLOCK_PROCESS_CPUTIME_ID | CLOCK_THREAD_CPUTIME_ID | CLOCK_REALTIME | CLOCK_MONOTONIC | CLOCK_BOOTTIME,
sevp = <opt_notify_methods>,
timerid
);
// Create a timer based on a per-process or per-thread clock
timer_create(
clockid = <INTEGER>,
sevp = <opt_notify_methods>,
timerid
);
Unsupported predefined clock IDs:
CLOCK_REALTIME_ALARM
CLOCK_BOOTTIME_ALARM
CLOCK_TAI
Unsupported notification methods:
SIGEV_THREAD
For more information, see the man page.