Здравствуйте. Вызываю aio_read, и сразу срабатывает обработчик сигнала. aio_error говорит, что чтение завершено, aio_return возвращает 0
То есть, данных нет, а чтение уже закончилось
//установка обработчика сигнала
struct sigaction settings;
memset(&settings, 0, sizeof(settings));
settings.sa_flags = SA_SIGINFO;
settings.sa_sigaction = SigHandler;
sigaction(SIGUSR1, &settings, NULL);
//Чтение
memset(&readAio, 0, sizeof(readAio));
readAio.aio_fildes = socket;
readAio.aio_buf = buffer;
readAio.aio_nbytes = BUFFER_SIZE;
sigevent event;
memset(&event, 0, sizeof(event));
event.sigev_notify = SIGEV_SIGNAL;
event.sigev_signo = SIGUSR1;
event.sigev_value.sival_int = socket;
readAio.aio_sigevent = event;
aio_read(&readAio);
С чем связано такое поведение? Как прочитать данные из сокета?