1 #include "uwsgi.h" 2 3 extern struct uwsgi_server uwsgi; 4 uwsgi_simple_wait_milliseconds_hook(int timeout)5int uwsgi_simple_wait_milliseconds_hook(int timeout) { 6 return poll(NULL, 0, timeout); 7 } 8 9 10 // in the future we will need to use the best clock source for each os/system uwsgi_now()11time_t uwsgi_now() { 12 return uwsgi.clock->seconds(); 13 } 14 uwsgi_micros()15uint64_t uwsgi_micros() { 16 return uwsgi.clock->microseconds(); 17 } 18 uwsgi_millis()19uint64_t uwsgi_millis() { 20 return uwsgi.clock->microseconds() / 1000; 21 } 22 23 uwsgi_register_clock(struct uwsgi_clock * clock)24void uwsgi_register_clock(struct uwsgi_clock *clock) { 25 struct uwsgi_clock *clocks = uwsgi.clocks; 26 27 clock->next = NULL; 28 29 if (!clocks) { 30 uwsgi.clocks = clock; 31 return; 32 } 33 34 while (clocks) { 35 if (!clocks->next) { 36 clocks->next = clock; 37 return; 38 } 39 clocks = clocks->next; 40 } 41 } 42 uwsgi_set_clock(char * name)43void uwsgi_set_clock(char *name) { 44 struct uwsgi_clock *clocks = uwsgi.clocks; 45 while (clocks) { 46 if (!strcmp(name, clocks->name)) { 47 uwsgi.clock = clocks; 48 return; 49 } 50 clocks = clocks->next; 51 } 52 53 uwsgi_log("unable to set \"%s\" clock\n", name); 54 exit(1); 55 } 56