Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
7b4dc9b9
R
redis
项目概览
xindoo
/
redis
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7b4dc9b9
编写于
1月 06, 2012
作者:
J
jokea
提交者:
antirez
4月 06, 2012
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
implement aeWait using poll(2). Fixes issue #267.
上级
95c6a1a5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
13 deletion
+11
-13
src/ae.c
src/ae.c
+11
-13
未找到文件。
src/ae.c
浏览文件 @
7b4dc9b9
...
...
@@ -35,6 +35,8 @@
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <poll.h>
#include <string.h>
#include "ae.h"
#include "zmalloc.h"
...
...
@@ -358,21 +360,17 @@ int aeProcessEvents(aeEventLoop *eventLoop, int flags)
/* Wait for millseconds until the given file descriptor becomes
* writable/readable/exception */
int
aeWait
(
int
fd
,
int
mask
,
long
long
milliseconds
)
{
struct
timeval
tv
;
fd_set
rfds
,
wfds
,
efds
;
struct
pollfd
pfd
;
int
retmask
=
0
,
retval
;
tv
.
tv_sec
=
milliseconds
/
1000
;
tv
.
tv_usec
=
(
milliseconds
%
1000
)
*
1000
;
FD_ZERO
(
&
rfds
);
FD_ZERO
(
&
wfds
);
FD_ZERO
(
&
efds
);
if
(
mask
&
AE_READABLE
)
FD_SET
(
fd
,
&
rfds
);
if
(
mask
&
AE_WRITABLE
)
FD_SET
(
fd
,
&
wfds
);
if
((
retval
=
select
(
fd
+
1
,
&
rfds
,
&
wfds
,
&
efds
,
&
tv
))
>
0
)
{
if
(
FD_ISSET
(
fd
,
&
rfds
))
retmask
|=
AE_READABLE
;
if
(
FD_ISSET
(
fd
,
&
wfds
))
retmask
|=
AE_WRITABLE
;
memset
(
&
pfd
,
0
,
sizeof
(
pfd
));
pfd
.
fd
=
fd
;
if
(
mask
&
AE_READABLE
)
pfd
.
events
|=
POLLIN
;
if
(
mask
&
AE_WRITABLE
)
pfd
.
events
|=
POLLOUT
;
if
((
retval
=
poll
(
&
pfd
,
1
,
milliseconds
))
==
1
)
{
if
(
pfd
.
revents
&
POLLIN
)
retmask
|=
AE_READABLE
;
if
(
pfd
.
revents
&
POLLOUT
)
retmask
|=
AE_WRITABLE
;
return
retmask
;
}
else
{
return
retval
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录