Дождитесь сигнала MEX Function - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать функцию 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.

Есть идеи, почему?

...