mysql源码-os_event_t 事件机制解析

mysql源码-os_event_t 事件机制解析
在linux 平台下

实现原理

方法 pthread_mutex_lock pthread_cond_wait pthread_cond_broadcast
变量 pthread_mutex_t pthread_condattr_t 来实现的

实现过程

log.checkpointer_event 是创建一个事件的举例

创建事件的变量

log.checkpointer_event = os_event_create(“log_checkpointer_event”);
即初始化条件变量与mutex 变量
ret = pthread_cond_init(&cond_var, &cond_attr);

wait 等待

有超时事件的等待
os_event_wait_time_low(log.checkpointer_event, 10 * 1000, sig_count);
无超时事件的等待
os_event_wait_low(log.checkpointer_event, sig_count);
即调用pthread_cond_wait

事件激活

os_event_set(log.checkpointer_event);
即调用 ret = pthread_cond_broadcast(&cond_var);

事件初始化

const auto sig_count = os_event_reset(log.checkpointer_event);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值