MINOR: lua: add "now" time function

This function returns the current time in the Lua.
This commit is contained in:
Thierry Fournier 2016-01-21 09:46:15 +01:00 committed by Willy Tarreau
parent fb0b5467ca
commit b1f46561a0
2 changed files with 31 additions and 1 deletions

View File

@ -270,6 +270,20 @@ Core class
:param string filename: the filename that reference the map entries.
:param string key: the key which will be deleted.
.. js:function:: core.now()
**context**: body, init, task, action
This function returns the current time. The time returned is fixed by the
HAProxy core and assures than the hour will be monotnic and that the system
call 'gettimeofday' will not be called too. The time is refreshed between each
Lua execution or resume, so two consecutive call to the function "now" will
probably returns the same result.
:returns: an array which contains two entries "sec" and "usec". "sec"
contains the current at the epoch format, and "usec" contains the
current microseconds.
.. js:function:: core.msleep(milliseconds)
**context**: body, init, task, action

View File

@ -7,6 +7,21 @@
#include <lua.h>
#include <lualib.h>
#include <common/time.h>
/* This function return the current date at epoch format in milliseconds. */
int hlua_now(lua_State *L)
{
lua_newtable(L);
lua_pushstring(L, "sec");
lua_pushinteger(L, now.tv_sec);
lua_rawset(L, -3);
lua_pushstring(L, "usec");
lua_pushinteger(L, now.tv_usec);
lua_rawset(L, -3);
return 1;
}
static void hlua_array_add_fcn(lua_State *L, const char *name,
int (*function)(lua_State *L))
{
@ -17,5 +32,6 @@ static void hlua_array_add_fcn(lua_State *L, const char *name,
int hlua_fcn_reg_core_fcn(lua_State *L)
{
return 0;
hlua_array_add_fcn(L, "now", hlua_now);
return 1;
}