почему он не читает файл дескриптор async_wait

Почему он не проваливается в чтение файл дескриптора а сразу пишет ОК и завершает выполнение программы.

static void waitGpios(boost::asio::posix::stream_descriptor& desc,
                      gpiod::line& line)
{
    std::cout << "ok\n";
    desc.async_wait(boost::asio::posix::stream_descriptor::wait_read,
                    [&desc, &line](const boost::system::error_code e) {
                        if (e)
                        {
                            std::cerr << e.message();
                        }
                        gpiod::line_event line_event = line.event_read();
                        std::cout << (line_event.event_type ==
                                      gpiod::line_event::RISING_EDGE);
                        waitGpios(desc, line);
                    });
}

static int requestGpios(gpiod::line& gpioLine,
                        boost::asio::posix::stream_descriptor& desc)
{
    // request gpios

    waitGpios(desc, gpioLine);

    return 0;
}
int main()
{
    boost::asio::io_service io;
    gpiod::line psPwrOkLine;
    boost::asio::posix::stream_descriptor psPwrOkDesc(io);

    if (requestGpios(psPwrOkLine, psPwrOkDesc) == -1)
        return -1;
}


Ответы (0 шт):