Skip to content

Commit 0a02dc1

Browse files
committed
test libev but result is bad
1 parent a437dd0 commit 0a02dc1

File tree

1 file changed

+54
-1
lines changed

1 file changed

+54
-1
lines changed

libev/test/entry.cpp

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,47 @@
55
#include <cstring>
66
#include <cstdio>
77
#include <signal.h>
8+
#include <unistd.h>
9+
#include <string.h>
10+
#include <stdlib.h>
11+
#include <ev.h>
812

913
#include "asyn_server.h"
1014
#include "nb_net_tool.h"
1115

16+
struct ev_loop* loop = NULL;
17+
int server = 0;
18+
19+
void accept_cb(EV_P_ ev_io* p, int enent)
20+
{
21+
printf("accept success\n");
22+
23+
ev_io_stop(EV_A_ p);
24+
ev_break(EV_A_ EVBREAK_ONE);
25+
26+
p = (ev_io*)malloc(sizeof(ev_io));
27+
ev_io_init(p, accept_cb, 0, EV_READ);
28+
ev_io_start(loop, p);
29+
}
30+
31+
32+
void cb(EV_P_ ev_io* p, int enent)
33+
{
34+
printf("stdin read happen\n");
35+
//ev_io_stop(EV_A_ p);
36+
//ev_break(EV_A_ EVBREAK_ONE);
37+
}
38+
1239
int main()
1340
{
14-
int server = socket(AF_INET, SOCK_STREAM, 0);
41+
// prepare io
42+
//struct ev_loop* loop = EV_DEFAULT;
43+
loop = EV_DEFAULT;
44+
ev_io accept_id;
45+
ev_io tmp;
46+
47+
//int server = socket(AF_INET, SOCK_STREAM, 0);
48+
server = socket(AF_INET, SOCK_STREAM, 0);
1549

1650
struct sockaddr_in serv_addr;
1751
bzero(&serv_addr, sizeof(struct sockaddr_in));
@@ -23,16 +57,28 @@ int main()
2357
sigset_t old_mask;
2458
sigfillset(&new_mask);
2559
pthread_sigmask(SIG_BLOCK, &new_mask, &old_mask);
60+
printf("start binding\n");
2661
if (0 != bind(server, (struct sockaddr*)&serv_addr, sizeof(serv_addr)))
2762
{
2863
printf("error happen when use bind\n");
2964
}
3065

66+
printf("start listening\n");
3167
if (0 != listen(server, 10))
3268
{
3369
printf("error happen when use listen\n");
3470
}
3571

72+
printf("ev io starting\n");
73+
ev_io_init(&accept_id, accept_cb, server, EV_READ);
74+
ev_io_start(loop, &accept_id);
75+
76+
//ev_io_init(&tmp, cb, 0, EV_READ);
77+
//ev_io_start(loop, &tmp);
78+
79+
ev_run(loop, 0);
80+
printf("\nev io end\n");
81+
3682
sigset_t wait_mask;
3783
sigemptyset(&wait_mask);
3884
sigaddset(&wait_mask, SIGINT);
@@ -42,5 +88,12 @@ int main()
4288
int flag = 0;
4389
sigwait(&wait_mask, &flag);
4490

91+
printf("ev io stoping\n");
92+
ev_io_stop(EV_A_ &accept_id);
93+
ev_break(EV_A_ EVBREAK_ALL);
94+
printf("ev io has stoped\n");
95+
4596
return 0;
4697
}
98+
99+

0 commit comments

Comments
 (0)