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_NOCLDSTOPSA_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_ALARMCLOCK_BOOTTIME_ALARMCLOCK_TAI
Unsupported notification methods:
SIGEV_THREAD
For more information, see the man page.