Автор жжет.
Напалмом
Я не сильно
большой знаток *NIX систем и Linux,
специализируюсь больше на разработке
кросс-платформенных решений, а тут как
раз представился удобный случай
повнимательнее взглянуть на знаменитые
сигналы UNIX.
…
Изначально
примитивный и очень простой механизм
-- асинхронный вызов для аварийных
ситуаций с передачей одного целого
числа как кода аварии (см. signal() в сишной
библиотеке) превратили в уродливое
монстроподобное гавно, которое разве
что за рисование окон не отвечает.
...
И конечно
же, ваш ждет куча другого легаси гавна,
вроде двух различных видов функций для
обработки сигналов, или лежащего рядом
указателя sa_restorer, который как бэ
obsolete и не должен использоваться... Кста,
если вы загляните в signal.h, то увидите
там # ifdef __KERNEL__ и #else секцию, которая
начинается словами /* Here we must cater to
libcs that poke about in kernel headers. */. Очень мило!
Отдельный
большой вопрос, почему при запросе
асинхронной I/O операции я не могу
конкретно указать callback, куда я желаю
получить нотификацию, для меня остается
загадкой.
Кстати, другой хрестоматийный пример подобного "развития" API -- беркли сокеты, о которых я не могу говорить больше пяти секунд, не приходя в лютое бешенство от криворукости и скудоумия людей, их придумавших.
#5. Давайте о чем-то хорошем, а?...
Мне вот, к примеру, нравится, что при отсутствии обработчика завершения асинхронной I/O операции приложений падает. Я серьезно, без всякого сарказма.
Комментариев нет:
Отправить комментарий