From c4425627eed177ddc454ae3996158a42e1bb2191 Mon Sep 17 00:00:00 2001 From: "roberto@quantal64" Date: Sat, 25 Aug 2012 17:23:38 +0200 Subject: [PATCH] added clock realtime plugin --- plugins/clock_realtime/clock_realtime.c | 32 +++++++++++++++++++++++++ plugins/clock_realtime/uwsgiplugin.py | 6 +++++ 2 files changed, 38 insertions(+) create mode 100644 plugins/clock_realtime/clock_realtime.c create mode 100644 plugins/clock_realtime/uwsgiplugin.py diff --git a/plugins/clock_realtime/clock_realtime.c b/plugins/clock_realtime/clock_realtime.c new file mode 100644 index 00000000..dd83ee40 --- /dev/null +++ b/plugins/clock_realtime/clock_realtime.c @@ -0,0 +1,32 @@ +#include "../../uwsgi.h" + +// timespecs have nanoseconds resolution + +time_t uwsgi_realtime_seconds() { + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + return ts.tv_sec; +} + +uint64_t uwsgi_realtime_microseconds() { + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + return (ts.tv_sec * 1000000) + (ts.tv_nsec*1000); +} + + +static struct uwsgi_clock uwsgi_realtime_clock = { + .name = "realtime", + .seconds = uwsgi_realtime_seconds, + .microseconds = uwsgi_realtime_microseconds, +}; + + +void uwsgi_realtime_clock_load() { + uwsgi_register_clock(&uwsgi_realtime_clock); +} + +struct uwsgi_plugin clock_realtime_plugin = { + .name = "clock_realtime", + .on_load = uwsgi_realtime_clock_load +}; diff --git a/plugins/clock_realtime/uwsgiplugin.py b/plugins/clock_realtime/uwsgiplugin.py new file mode 100644 index 00000000..c3da6ed3 --- /dev/null +++ b/plugins/clock_realtime/uwsgiplugin.py @@ -0,0 +1,6 @@ +NAME='clock_realtime' + +CFLAGS = [] +LDFLAGS = [] +LIBS = [] +GCC_LIST = ['clock_realtime']