文件名称:手动锁定和解锁-visual c++ mfc编程实例
文件大小:1.05MB
文件格式:PDF
更新时间:2024-06-29 06:58:22
libevent
7.8 手动锁定和解锁 有时候需要确保对 bufferevent 的一些操作是原子地执行的。为此,libevent 提供了手动锁定和解锁 bufferevent 的函数。 7.8.1 接口 bufferevent_lock, bufferevent_unlock void bufferevent_lock(struct bufferevent *bufev); void bufferevent_unlock(struct bufferevent *bufev); 注意: 如果创建 bufferevent 时没有指定 BEV_OPT_THREADSAFE 标志,或者没有激活 libevent 的线程支持,则锁 定操作是没有效果的。 用这个函数锁定 bufferevent 将自动同时锁定相关联的 evbuffer。这些函数是递归的:锁定已经持有锁的 bufferevent 是安全的。当然,对于每次锁定都必须进行一次解锁。 这些函数由 2.0.6-rc 版引入。 7.9 已废弃的 bufferevent 功能 从 1.4 到 2.0 版,bufferevent 的后端代码一直在进行修订。在老的接口中,访问 bufferevent 结构体的内部 是很平常的,并且还会使用依赖于这种访问的宏。 更复杂的是,老的代码有时候将“evbuffer”前缀用于 bufferevent 功能。这里有一个在 2.0 版之前使用过的 东西的概要: