… | |
… | |
86 | aio2_cb (EV_P_ ev_idle *w, int revents) |
86 | aio2_cb (EV_P_ ev_idle *w, int revents) |
87 | { |
87 | { |
88 | CALL_BEGIN (0); |
88 | CALL_BEGIN (0); |
89 | CALL_CALL ("IO::AIO::poll_cb", G_SCALAR); |
89 | CALL_CALL ("IO::AIO::poll_cb", G_SCALAR); |
90 | |
90 | |
91 | fprintf (stderr, "pollcb %d\n", count ? TOPi : 0);//D |
|
|
92 | if (count > 0 && TOPi < 0) |
91 | if (count > 0 && TOPi < 0) |
93 | ev_idle_start (EV_A, w); |
92 | ev_idle_start (EV_A, w); |
94 | else |
93 | else |
95 | ev_idle_stop (EV_A, w); |
94 | ev_idle_stop (EV_A, w); |
96 | |
95 | |
… | |
… | |
105 | |
104 | |
106 | static void |
105 | static void |
107 | aio1_cb (EV_P_ ev_io *w, int revents) |
106 | aio1_cb (EV_P_ ev_io *w, int revents) |
108 | { |
107 | { |
109 | char dummy; |
108 | char dummy; |
110 | ev_io_stop (EV_A, w);//D |
|
|
111 | return; |
|
|
112 | |
109 | |
113 | if (read (w->fd, &dummy, 1) > 0) |
110 | if (read (w->fd, &dummy, 1) > 0) |
114 | { |
111 | { |
115 | fprintf (stderr, "async\n");//D |
|
|
116 | ev_async_send (EV_DEFAULT_UC, &async_watcher); |
112 | ev_async_send (EV_DEFAULT_UC, &async_watcher); |
117 | coroapi::cede_pending = 1; |
113 | coroapi::cede_pending = 1; |
118 | } |
114 | } |
119 | } |
115 | } |
120 | |
116 | |