mirror of
https://github.com/lunarmodules/luasocket.git
synced 2024-12-25 12:08:21 +01:00
timeout: pragma visibility
This commit is contained in:
parent
86e1b3f45f
commit
42a1a732b7
@ -4,10 +4,6 @@
|
|||||||
\*=========================================================================*/
|
\*=========================================================================*/
|
||||||
#include "luasocket.h"
|
#include "luasocket.h"
|
||||||
|
|
||||||
#include "lua.h"
|
|
||||||
#include "lauxlib.h"
|
|
||||||
#include "compat.h"
|
|
||||||
|
|
||||||
#include "auxiliar.h"
|
#include "auxiliar.h"
|
||||||
#include "timeout.h"
|
#include "timeout.h"
|
||||||
|
|
||||||
@ -30,6 +26,10 @@
|
|||||||
#define MAX(x, y) ((x) > (y) ? x : y)
|
#define MAX(x, y) ((x) > (y) ? x : y)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
#pragma GCC visibility push(hidden)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*=========================================================================*\
|
/*=========================================================================*\
|
||||||
* Internal function prototypes
|
* Internal function prototypes
|
||||||
\*=========================================================================*/
|
\*=========================================================================*/
|
||||||
@ -48,7 +48,7 @@ static luaL_Reg func[] = {
|
|||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Initialize structure
|
* Initialize structure
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
LUASOCKET_PRIVATE void timeout_init(p_timeout tm, double block, double total) {
|
void timeout_init(p_timeout tm, double block, double total) {
|
||||||
tm->block = block;
|
tm->block = block;
|
||||||
tm->total = total;
|
tm->total = total;
|
||||||
}
|
}
|
||||||
@ -61,7 +61,7 @@ LUASOCKET_PRIVATE void timeout_init(p_timeout tm, double block, double total) {
|
|||||||
* Returns
|
* Returns
|
||||||
* the number of ms left or -1 if there is no time limit
|
* the number of ms left or -1 if there is no time limit
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
LUASOCKET_PRIVATE double timeout_get(p_timeout tm) {
|
double timeout_get(p_timeout tm) {
|
||||||
if (tm->block < 0.0 && tm->total < 0.0) {
|
if (tm->block < 0.0 && tm->total < 0.0) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (tm->block < 0.0) {
|
} else if (tm->block < 0.0) {
|
||||||
@ -82,7 +82,7 @@ LUASOCKET_PRIVATE double timeout_get(p_timeout tm) {
|
|||||||
* Returns
|
* Returns
|
||||||
* start field of structure
|
* start field of structure
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
LUASOCKET_PRIVATE double timeout_getstart(p_timeout tm) {
|
double timeout_getstart(p_timeout tm) {
|
||||||
return tm->start;
|
return tm->start;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ LUASOCKET_PRIVATE double timeout_getstart(p_timeout tm) {
|
|||||||
* Returns
|
* Returns
|
||||||
* the number of ms left or -1 if there is no time limit
|
* the number of ms left or -1 if there is no time limit
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
LUASOCKET_PRIVATE double timeout_getretry(p_timeout tm) {
|
double timeout_getretry(p_timeout tm) {
|
||||||
if (tm->block < 0.0 && tm->total < 0.0) {
|
if (tm->block < 0.0 && tm->total < 0.0) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (tm->block < 0.0) {
|
} else if (tm->block < 0.0) {
|
||||||
@ -114,7 +114,7 @@ LUASOCKET_PRIVATE double timeout_getretry(p_timeout tm) {
|
|||||||
* Input
|
* Input
|
||||||
* tm: timeout control structure
|
* tm: timeout control structure
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
LUASOCKET_PRIVATE p_timeout timeout_markstart(p_timeout tm) {
|
p_timeout timeout_markstart(p_timeout tm) {
|
||||||
tm->start = timeout_gettime();
|
tm->start = timeout_gettime();
|
||||||
return tm;
|
return tm;
|
||||||
}
|
}
|
||||||
@ -125,7 +125,7 @@ LUASOCKET_PRIVATE p_timeout timeout_markstart(p_timeout tm) {
|
|||||||
* time in s.
|
* time in s.
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
LUASOCKET_PRIVATE double timeout_gettime(void) {
|
double timeout_gettime(void) {
|
||||||
FILETIME ft;
|
FILETIME ft;
|
||||||
double t;
|
double t;
|
||||||
GetSystemTimeAsFileTime(&ft);
|
GetSystemTimeAsFileTime(&ft);
|
||||||
@ -135,7 +135,7 @@ LUASOCKET_PRIVATE double timeout_gettime(void) {
|
|||||||
return (t - 11644473600.0);
|
return (t - 11644473600.0);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
LUASOCKET_PRIVATE double timeout_gettime(void) {
|
double timeout_gettime(void) {
|
||||||
struct timeval v;
|
struct timeval v;
|
||||||
gettimeofday(&v, (struct timezone *) NULL);
|
gettimeofday(&v, (struct timezone *) NULL);
|
||||||
/* Unix Epoch time (time since January 1, 1970 (UTC)) */
|
/* Unix Epoch time (time since January 1, 1970 (UTC)) */
|
||||||
@ -146,7 +146,7 @@ LUASOCKET_PRIVATE double timeout_gettime(void) {
|
|||||||
/*-------------------------------------------------------------------------*\
|
/*-------------------------------------------------------------------------*\
|
||||||
* Initializes module
|
* Initializes module
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
LUASOCKET_PRIVATE int timeout_open(lua_State *L) {
|
int timeout_open(lua_State *L) {
|
||||||
luaL_setfuncs(L, func, 0);
|
luaL_setfuncs(L, func, 0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -157,7 +157,7 @@ LUASOCKET_PRIVATE int timeout_open(lua_State *L) {
|
|||||||
* time: time out value in seconds
|
* time: time out value in seconds
|
||||||
* mode: "b" for block timeout, "t" for total timeout. (default: b)
|
* mode: "b" for block timeout, "t" for total timeout. (default: b)
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
LUASOCKET_PRIVATE int timeout_meth_settimeout(lua_State *L, p_timeout tm) {
|
int timeout_meth_settimeout(lua_State *L, p_timeout tm) {
|
||||||
double t = luaL_optnumber(L, 2, -1);
|
double t = luaL_optnumber(L, 2, -1);
|
||||||
const char *mode = luaL_optstring(L, 3, "b");
|
const char *mode = luaL_optstring(L, 3, "b");
|
||||||
switch (*mode) {
|
switch (*mode) {
|
||||||
@ -179,7 +179,7 @@ LUASOCKET_PRIVATE int timeout_meth_settimeout(lua_State *L, p_timeout tm) {
|
|||||||
* Gets timeout values for IO operations
|
* Gets timeout values for IO operations
|
||||||
* Lua Output: block, total
|
* Lua Output: block, total
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
LUASOCKET_PRIVATE int timeout_meth_gettimeout(lua_State *L, p_timeout tm) {
|
int timeout_meth_gettimeout(lua_State *L, p_timeout tm) {
|
||||||
lua_pushnumber(L, tm->block);
|
lua_pushnumber(L, tm->block);
|
||||||
lua_pushnumber(L, tm->total);
|
lua_pushnumber(L, tm->total);
|
||||||
return 2;
|
return 2;
|
||||||
@ -201,7 +201,7 @@ static int timeout_lua_gettime(lua_State *L)
|
|||||||
* Sleep for n seconds.
|
* Sleep for n seconds.
|
||||||
\*-------------------------------------------------------------------------*/
|
\*-------------------------------------------------------------------------*/
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
LUASOCKET_PRIVATE int timeout_lua_sleep(lua_State *L)
|
int timeout_lua_sleep(lua_State *L)
|
||||||
{
|
{
|
||||||
double n = luaL_checknumber(L, 1);
|
double n = luaL_checknumber(L, 1);
|
||||||
if (n < 0.0) n = 0.0;
|
if (n < 0.0) n = 0.0;
|
||||||
@ -211,7 +211,7 @@ LUASOCKET_PRIVATE int timeout_lua_sleep(lua_State *L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
LUASOCKET_PRIVATE int timeout_lua_sleep(lua_State *L)
|
int timeout_lua_sleep(lua_State *L)
|
||||||
{
|
{
|
||||||
double n = luaL_checknumber(L, 1);
|
double n = luaL_checknumber(L, 1);
|
||||||
struct timespec t, r;
|
struct timespec t, r;
|
||||||
@ -228,3 +228,7 @@ LUASOCKET_PRIVATE int timeout_lua_sleep(lua_State *L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
#pragma GCC visibility pop
|
||||||
|
#endif
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* Timeout management functions
|
* Timeout management functions
|
||||||
* LuaSocket toolkit
|
* LuaSocket toolkit
|
||||||
\*=========================================================================*/
|
\*=========================================================================*/
|
||||||
#include "lua.h"
|
#include "luasocket.h"
|
||||||
|
|
||||||
/* timeout control structure */
|
/* timeout control structure */
|
||||||
typedef struct t_timeout_ {
|
typedef struct t_timeout_ {
|
||||||
@ -14,16 +14,23 @@ typedef struct t_timeout_ {
|
|||||||
} t_timeout;
|
} t_timeout;
|
||||||
typedef t_timeout *p_timeout;
|
typedef t_timeout *p_timeout;
|
||||||
|
|
||||||
int timeout_open(lua_State *L);
|
#pragma GCC visibility push(hidden)
|
||||||
|
|
||||||
void timeout_init(p_timeout tm, double block, double total);
|
void timeout_init(p_timeout tm, double block, double total);
|
||||||
double timeout_get(p_timeout tm);
|
double timeout_get(p_timeout tm);
|
||||||
|
double timeout_getstart(p_timeout tm);
|
||||||
double timeout_getretry(p_timeout tm);
|
double timeout_getretry(p_timeout tm);
|
||||||
p_timeout timeout_markstart(p_timeout tm);
|
p_timeout timeout_markstart(p_timeout tm);
|
||||||
double timeout_getstart(p_timeout tm);
|
|
||||||
double timeout_gettime(void);
|
double timeout_gettime(void);
|
||||||
|
|
||||||
|
int timeout_open(lua_State *L);
|
||||||
|
|
||||||
int timeout_meth_settimeout(lua_State *L, p_timeout tm);
|
int timeout_meth_settimeout(lua_State *L, p_timeout tm);
|
||||||
int timeout_meth_gettimeout(lua_State *L, p_timeout tm);
|
int timeout_meth_gettimeout(lua_State *L, p_timeout tm);
|
||||||
|
|
||||||
|
#pragma GCC visibility pop
|
||||||
|
|
||||||
#define timeout_iszero(tm) ((tm)->block == 0.0)
|
#define timeout_iszero(tm) ((tm)->block == 0.0)
|
||||||
|
|
||||||
#endif /* TIMEOUT_H */
|
#endif /* TIMEOUT_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user