五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Event in Action(3.1) Buffer event

2023-06-10 23:35 作者:米諾斯人  | 我要投稿

buffer event 專門用于處理io事件,如socket的io。

對(duì)普通event進(jìn)行封裝,當(dāng)epoll返回可寫可讀event的時(shí)候,觸發(fā)框架自帶的回調(diào)函數(shù)進(jìn)行讀寫。自動(dòng)處理類似EWOULDBLOCK的非阻塞讀寫時(shí),可恢復(fù)的errno,以及不可回復(fù)的errno。


回調(diào)函數(shù)中的事件參數(shù) short events:

  • BEV_EVENT_READING

    An event occured during a read operation on the bufferevent. See the other flags for which event it was.

  • BEV_EVENT_WRITING

    An event occured during a write operation on the bufferevent. See the other flags for which event it was.

  • BEV_EVENT_ERROR

    讀寫操作的時(shí)候發(fā)生錯(cuò)誤。

  • BEV_EVENT_TIMEOUT

    超時(shí)。

  • BEV_EVENT_EOF

    對(duì)方關(guān)閉連接。

  • BEV_EVENT_CONNECTED

    本地主動(dòng)關(guān)閉連接。

水位:見下一篇。


這里只說一下參數(shù)三:

  • BEV_OPT_CLOSE_ON_FREE

    free buffer內(nèi)存的時(shí)候自動(dòng)關(guān)閉socket

  • BEV_OPT_THREADSAFE

    多線程安全。

  • BEV_OPT_DEFER_CALLBACKS

    延遲調(diào)用callback,防止爆棧(比如callback1寫入buffer導(dǎo)致buffer滿了,callback2這時(shí)候觸發(fā)(full條件),之間drain空buffer,empty條件又觸發(fā)callback1,如此循環(huán)往復(fù))

  • BEV_OPT_UNLOCK_CALLBACKS

    buffer觸發(fā)事件,調(diào)用callback的時(shí)候,先release mutex

如果要自動(dòng)產(chǎn)生connect的socket:

address為對(duì)端地址。

一些http的東西就不談了,還沒學(xué)

設(shè)定三種callback。

值得一提的是eventcb,在鏈接發(fā)生讀寫之外的事件,或者讀寫觸發(fā)水位線的時(shí)候會(huì)觸發(fā)。

可以通過null來禁用callback。

設(shè)置event以及timeout。

對(duì)普通struct event的封裝

一般不需要禁用讀事件,在input buffer滿了的時(shí)候,框架自動(dòng)停止read,直到buffer又有了新的空間。

水位設(shè)定。

buffer讀寫相關(guān)。不重要的,簡(jiǎn)單看看就會(huì)。復(fù)雜度也很明顯沒什么可討論的。

強(qiáng)迫buffer event預(yù)留足夠的空間。

socket buffer沒有這個(gè)配置。

優(yōu)先級(jí)以及上鎖。如果初始化的時(shí)候沒有設(shè)定BEV_OPT_THREADSAFE,則上鎖沒有任何效果。


Event in Action(3.1) Buffer event的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
咸丰县| 娄烦县| 高邮市| 聂荣县| 托里县| 桓仁| 杂多县| 镇赉县| 临清市| 曲阜市| 石泉县| 临泽县| 朝阳区| 武功县| 云南省| 武冈市| 隆德县| 通江县| 沅江市| 景德镇市| 绍兴市| 古交市| 榕江县| 蒙阴县| 凌海市| 武威市| 日照市| 湛江市| 辽阳市| 石渠县| 靖江市| 扎囊县| 长丰县| 海阳市| 平利县| 通化市| 堆龙德庆县| 西畴县| 永和县| 顺昌县| 揭阳市|