国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關于libevent的事件持續化EV_READ | EV_PERSIST

happyfish / 1296人閱讀

摘要:如果一個事件被設置了,那么這個事件就是持續化的,意思就是這個事件會保持掛起狀態,即使回調函數被執行。任何時候事件的回調函數觸發都會重置持續化事件中的超時狀態。

關于事件的可持續化

從網上找的內容,可以看下github中的一本book,點擊下面的連接就ok了。
github-libevent_book引用其中的話

About Event Persistence
By default, whenever a pending event becomes active (because its fd is ready to read or write, or because its timeout expires), it becomes non-pending right before its callback is executed. Thus, if you want to make the event pending again, you can call event_add() on it again from inside the callback function.
If the EV_PERSIST flag is set on an event, however, the event is persistent. This means that event remains pending even when its callback is activated. If you want to make it non-pending from within its callback, you can call event_del() on it.
The timeout on a persistent event resets whenever the event’s callback runs. Thus, if you have an event with flags EV_READ|EV_PERSIST and a timeout of five seconds, the event will become active:

Whenever the socket is ready for reading.

Whenever five seconds have passed since the event last became active.

翻譯

可能有不對的地方,歡迎指正

關于事件的持續化
默認情況下,任何時候一個掛起的事件被激活(因為他的fd準備好了讀或者寫,或者因為他的超時過期了),它會在回調函數執行之前變為非掛起。如果你想讓事件再次掛起,你需要在回調函數內部調用event_add()
如果一個事件被設置了EV_PERSIST,那么這個事件就是持續化的,意思就是這個事件會保持掛起狀態,即使回調函數被執行。如果你想讓它變為非掛起狀態,可以在回調函數中調用event_del()

任何時候事件的回調函數觸發都會重置持續化事件中的超時狀態。因此,如果的事件有EV_READ/EV_PERSIST并且設置了5秒超時,那么有兩種情況會觸發這個事件:

當socket可以進行讀取的時候

當5s超時到期的時候

給個例子:
           
               
                                           
                       
                 

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22027.html

相關文章

  • 一次讀懂 Select、Poll、Epoll IO復用技術

    摘要:目前的常用的復用模型有三種,,。如果設置為,則將一直阻塞到有套接字滿足條件。模型是和的增強版,同一樣,文件描述符數量無限制。支持多種多路復用技術,和等。同時為文件描述符信號超時設定等事件提供了監聽回調。 閱讀本文大概需要 6 分鐘。 我們之前采用的多進程方式實現的服務器端,一次創建多個工作子進程來給客戶端提供服務。其實這種方式是存在問題的。 可以打個比方:如果我們先前創建的幾個進程承...

    int64 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<