//ListView滑动小于10像素时表示点击事件滑动时不会触发点击事件
前面介绍了在添加事件时,具體是如何操作的呢事件操作主要是在evmap.c文件中,包含了io事件signal事件的操作。在事件操作时分两种情况,一种是利用hash表另外一种是不用hash表。
hash表结构主要是针对io事件时通过两个宏定义了hash表,及hash表相关的操作
其所使用的hash函数为用io的fd来计算hash
在io的fd知道的情况下是如何来找到对應的事件的呢?如果没有找到又是做什么操作呢?实际上针对这两种情况,libevent中两个相对应的宏一个是直接查找,另一个是也是查找但是在没有找到的情况下,就将其插入hash表中分别为
对于信号事件,没有使用hash表使用的是动态数组,与信号相关的结构为
针对信号查找与io查找一样分为两种情况
3、I/O添加、删除、激活操作
4、signal的添加、删除、激活操作
Signal添加时只有当信号对应的事件队列为空时,才会调用evsel->add刪除时只有当signal对应的事件队列中只有一个事件时,才会调用evsel->del其具体实现为
写在前面:libevent优点:开源、精简、跨平台、专注网络;
一、常规事件的一般步骤:
// 第二步:创建事件(常规事件)
//第三步:将事件添加到base上
//第四步:循环监听事件满足
// 第二步:创建事件(常规事件)
//第三步:将事件添加到base上
//第四步:循环监听事件满足