加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
sync.h 707 Bytes
一键复制 编辑 原始数据 按行查看 历史
lijialiang 提交于 2024-06-04 15:42 . sync_wait上库
#ifndef SYNC_H
#define SYNC_H
#include <stdio.h>
#include <errno.h>
#include <poll.h>
static inline int sync_wait(int num, int time)
{
struct pollfd work;
int result;
if (num < 0) {
errno = EINVAL;
return -1;
}
work.fd = num;
work.events = POLLIN;
do {
result = poll(&work, 1, time);
if (result > 0) {
if (work.revents & (POLLERR | POLLNVAL)) {
errno = EINVAL;
return -1;
}
return 0;
} else if (result == 0) {
errno = ETIME;
return -1;
}
} while (result == -1 && (errno == EINTR || errno == EAGAIN));
return result;
}
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化