Событие по таймеру

Тема в разделе "WASM.UNIX", создана пользователем ShadOS, 30 мар 2008.

  1. ShadOS

    ShadOS New Member

    Публикаций:
    0
    Регистрация:
    20 сен 2006
    Сообщения:
    39
    Адрес:
    0x48k
    Есть необходимость выполнять событие в ядре FreeBSD по таймеру. Интересующий файл - tcp_input.c, а точнее функция tcp_input(). В ней необходимо выполнять некое действие по истечение таймера (например, каждую секунду). Каким образом это лучше сделать, есл иможно - с примерами.
     
  2. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    ShadOS
    Если не чаще чем раз в секунду - в обработчике события по таймеру взводишь флаг,
    а в функции проверяешь, выполняешь что нужно и сбрасываешь.
    Если нужно точно отсчитывать интервал и в стеке TCP/IP есть "служба времени", то пользуйся ей.
    Если нет, то тогда опиши задачу, т.к. твой набор слов мне совершенно непонятен...
     
  3. ShadOS

    ShadOS New Member

    Публикаций:
    0
    Регистрация:
    20 сен 2006
    Сообщения:
    39
    Адрес:
    0x48k
    1) А если чаще чем раз в секунду? 2) что за служба времени? Никогда не слышал =)
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    ShadOS
    1) имеется ввиду запускать таймер на нужный интервал и взводить флаг по истечении времени.
    Т.к. в tcp_input ты попадешь не сразу, то интервалы между выполнениями нужных оперций будут
    длиннее немного. Таймер запускается вообще в фоне и к TCP/IP особого отношения не
    будет иметь - надо только уметь флаг прочитать.
    2) служба времени - имеется ввиду внутренние таймеры. Я с исходниками TCP/IP дела
    не имел, но должно там такое быть. Таймауты ведь есть. Но скорее всего используются
    общие таймеры - я же говорю что ты задачу плохо понимаешь.
    =================================
    Почитай про таймеры, разбери пару примеров - тогда и поговорим.