Добрый день. Пишу на Qt по видой. Сейчас необходимо написать несколько программ на Qt для Linux.
В связи с этим несколько вопросов:
1. какой аналог CRITICAL_SECTION для Linux?
2. Определение в функциях __fastcall в Linux используется?
3. Какой аналог эвентов в Linux:
код для Windows
Может лучше воспользоваться средствами Qt? Там есть всякие QMutex, QWaitContion, QSemaphore, QEvent, QThread.
Зачем CRITICAL_SECTION, семафоры один из универсальных методов синхронизации. __fastcall не знаю зачем он нужен, когда компилятор сам умеет оптимизировать.
Ну если хочется платформозависимые события, то man event
1. Нет необходимости, т.к. все виджеты по-умолчанию отрисовываются и управляются в главном потоке, а доступ из других потоков к ним запрещен. Если нужен просто примитив синхронизации юзайте QMutex.
2. void f(int) __attribute__((fastcall));
3. Ну в Qt предпочтительна модель сигнал/слот, хотя можно перехватывать отдельные события и/или все события разом, но имхо, события надо использовать только в крайнем случае.