博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 下的 sleep
阅读量:5887 次
发布时间:2019-06-19

本文共 906 字,大约阅读时间需要 3 分钟。

最近在阅读 libev 的源码,看到 libev 的代码里面的 sleep 实现, 我觉得可以把这个 sleep 实现单独拿出来,作为参考,以后可以直接拿来用。

代码如下(稍有修改):

voidev_sleep (double delay){    if (delay > 0.)    {    #if EV_USE_NANOSLEEP        struct timespec ts;        //EV_TS_SET (ts, delay);        ts.tv_sec = (long)t;         ts.tv_nsec = (long)((t - ts.tv_sec) * 1e9);        nanosleep (&ts, 0);#elif defined _WIN32        Sleep ((unsigned long)(delay * 1e3));#else        struct timeval tv;        /* here we rely on sys/time.h + sys/types.h + unistd.h providing select */        /* something not guaranteed by newer posix versions, but guaranteed */        /* by older ones */        //EV_TV_SET (tv, delay);        tv.tv_sec = (long)t;         tv.tv_usec = (long)((t - tv.tv_sec) * 1e6);        select (0, 0, 0, 0, &tv);#endif    }    }

 

其中的 EV_TS_SET 和 EV_TV_SET 是两个宏定义,我直接把这两个宏展开了。

本文转自郝峰波博客园博客,原文链接:http://www.cnblogs.com/fengbohello/p/7143692.html,如需转载请自行联系原作者

你可能感兴趣的文章
IE开发人员工具无法使用
查看>>
shiro 认证问题
查看>>
分页器(自定制)
查看>>
Docker系列一:Docker的介绍和安装
查看>>
java中添加定时任务
查看>>
mysql innodb研究中一直不懂的东西(不断更新)
查看>>
洛谷 P1803 凌乱的yyy Label:Water 贪心
查看>>
3.4 函数式编程
查看>>
测试——设计思维之获取反馈
查看>>
python之 前端HTML/CSS基础知识学习笔记
查看>>
Sencha Touch NestList 如何载入tree结构的数据
查看>>
工具栏图标切换
查看>>
Openlayers系列(一)关于地图投影相关错误的解决方案
查看>>
php多进程中的阻塞与非阻塞
查看>>
TensorFlow学习笔记(五)图像数据处理
查看>>
crossplatform---Nodejs in Visual Studio Code 05.Swig+Bootstrap
查看>>
论JVM爆炸的几种姿势及自救方法---转载
查看>>
keystone 手动建立租户,用户,角色,服务,端口
查看>>
排序之快速排序
查看>>
Win32编程day07 学习笔记
查看>>