Linux passes timeout test

This commit is contained in:
Ryan Dahl 2011-04-17 23:41:24 -07:00
parent 2ba25c8249
commit f12299d6c8
2 changed files with 32 additions and 1 deletions

View File

@ -535,8 +535,38 @@ int oio_write2(oio_req* req, const char* msg) {
}
void oio__timeout(EV_P_ ev_timer* watcher, int revents) {
oio_req* req = watcher->data;
assert(watcher == &req->timer);
assert(EV_TIMER & revents);
/* This watcher is not repeating. */
assert(!ev_is_active(watcher));
assert(!ev_is_pending(watcher));
if (req->cb) {
oio_timer_cb cb = req->cb;
cb(req, 0);
}
}
void oio_update_time() {
assert(0 && "implement me");
}
int64_t oio_now() {
assert(0 && "implement me");
return 0;
}
int oio_timeout(oio_req *req, int64_t timeout) {
return -1;
ev_timer_init(&req->timer, oio__timeout, timeout / 1000.0, 0.0);
ev_timer_start(EV_DEFAULT_UC_ &req->timer);
req->timer.data = req;
return 0;
}

View File

@ -22,6 +22,7 @@ typedef struct {
oio_connect_cb connect_cb; \
ngx_queue_t read_reqs; \
oio_buf* read_bufs; \
ev_timer timer; \
int read_bufcnt;