Software /
code /
prosody
Annotate
util-src/time.c @ 9888:5669bb11ac7b
mod_storage_internal: Increase default quota to 10 000
Performance doesn't seem great but 10k should be far enough from limits
inherited by the Lua parser. 1000 messages seemed pretty close to what
an active user might produce in one week.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 22 Mar 2019 02:04:34 +0100 |
parent | 9680:a374905e99ff |
child | 10480:94cacf9fd0ae |
rev | line source |
---|---|
9164
35807f02bdc7
util.time: Allow for already set constant
Kim Alvefur <zash@zash.se>
parents:
9163
diff
changeset
|
1 #ifndef _POSIX_C_SOURCE |
9680
a374905e99ff
util.time: Bump POSIX_C_SOURCE to ensure visibility of CLOCK_MONOTONIC on FreeBSD (fixes #1253)
Matthew Wild <mwild1@gmail.com>
parents:
9164
diff
changeset
|
2 #define _POSIX_C_SOURCE 200809L |
9164
35807f02bdc7
util.time: Allow for already set constant
Kim Alvefur <zash@zash.se>
parents:
9163
diff
changeset
|
3 #endif |
9162 | 4 |
5 #include <time.h> | |
6 #include <lua.h> | |
7 | |
8 lua_Number tv2number(struct timespec *tv) { | |
9 return tv->tv_sec + tv->tv_nsec * 1e-9; | |
10 } | |
11 | |
12 int lc_time_realtime(lua_State *L) { | |
13 struct timespec t; | |
14 clock_gettime(CLOCK_REALTIME, &t); | |
15 lua_pushnumber(L, tv2number(&t)); | |
16 return 1; | |
17 } | |
18 | |
9163 | 19 int lc_time_monotonic(lua_State *L) { |
20 struct timespec t; | |
21 clock_gettime(CLOCK_MONOTONIC, &t); | |
22 lua_pushnumber(L, tv2number(&t)); | |
23 return 1; | |
24 } | |
25 | |
9162 | 26 int luaopen_util_time(lua_State *L) { |
27 lua_createtable(L, 0, 2); | |
28 { | |
29 lua_pushcfunction(L, lc_time_realtime); | |
30 lua_setfield(L, -2, "now"); | |
9163 | 31 lua_pushcfunction(L, lc_time_monotonic); |
32 lua_setfield(L, -2, "monotonic"); | |
9162 | 33 } |
34 return 1; | |
35 } |