Я пытаюсь создать функцию MEX для MATLAB, которая будет просто ждать сигнала UNIX.
Вот код, который я написал:
void sigHandler(void)
{
sigset_t set;
int sig;
sigemptyset(&set);
if(sigaddset(&set, SIGUSR2) == -1)
perror("sigaddset error");
sigprocmask(SIG_BLOCK, &set, NULL);
if(sigwait(&set, &sig) == -1)
perror("sigwait failed\n");
return;
}
/* The gateway function */
void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
sigHandler();
return;
}
Когда я выполняю эта функция работает, но после отправки SIGUSR2 в процесс MATLAB происходит сбой MATLAB.
Есть идеи, почему?