aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorE. Westbrook <github@westbrook.io>2019-02-27 21:01:16 -0700
committerE. Westbrook <github@westbrook.io>2019-03-10 00:04:20 -0700
commit42a1a732b79fa6153c61da645b786da883bbd0b5 (patch)
treea5783a545dd47714f4d973798fe9577c41bc829a /src
parent86e1b3f45f57358d6b2a6666043df9a4a2f963c5 (diff)
downloadluasocket-42a1a732b79fa6153c61da645b786da883bbd0b5.tar.gz
luasocket-42a1a732b79fa6153c61da645b786da883bbd0b5.tar.bz2
luasocket-42a1a732b79fa6153c61da645b786da883bbd0b5.zip
timeout: pragma visibility
Diffstat (limited to 'src')
-rw-r--r--src/timeout.c36
-rw-r--r--src/timeout.h13
2 files changed, 30 insertions, 19 deletions
diff --git a/src/timeout.c b/src/timeout.c
index 8fb8f55..0e3ee27 100644
--- a/src/timeout.c
+++ b/src/timeout.c
@@ -4,10 +4,6 @@
4\*=========================================================================*/ 4\*=========================================================================*/
5#include "luasocket.h" 5#include "luasocket.h"
6 6
7#include "lua.h"
8#include "lauxlib.h"
9#include "compat.h"
10
11#include "auxiliar.h" 7#include "auxiliar.h"
12#include "timeout.h" 8#include "timeout.h"
13 9
@@ -30,6 +26,10 @@
30#define MAX(x, y) ((x) > (y) ? x : y) 26#define MAX(x, y) ((x) > (y) ? x : y)
31#endif 27#endif
32 28
29#ifndef _WIN32
30#pragma GCC visibility push(hidden)
31#endif
32
33/*=========================================================================*\ 33/*=========================================================================*\
34* Internal function prototypes 34* Internal function prototypes
35\*=========================================================================*/ 35\*=========================================================================*/
@@ -48,7 +48,7 @@ static luaL_Reg func[] = {
48/*-------------------------------------------------------------------------*\ 48/*-------------------------------------------------------------------------*\
49* Initialize structure 49* Initialize structure
50\*-------------------------------------------------------------------------*/ 50\*-------------------------------------------------------------------------*/
51LUASOCKET_PRIVATE void timeout_init(p_timeout tm, double block, double total) { 51void timeout_init(p_timeout tm, double block, double total) {
52 tm->block = block; 52 tm->block = block;
53 tm->total = total; 53 tm->total = total;
54} 54}
@@ -61,7 +61,7 @@ LUASOCKET_PRIVATE void timeout_init(p_timeout tm, double block, double total) {
61* Returns 61* Returns
62* the number of ms left or -1 if there is no time limit 62* the number of ms left or -1 if there is no time limit
63\*-------------------------------------------------------------------------*/ 63\*-------------------------------------------------------------------------*/
64LUASOCKET_PRIVATE double timeout_get(p_timeout tm) { 64double timeout_get(p_timeout tm) {
65 if (tm->block < 0.0 && tm->total < 0.0) { 65 if (tm->block < 0.0 && tm->total < 0.0) {
66 return -1; 66 return -1;
67 } else if (tm->block < 0.0) { 67 } else if (tm->block < 0.0) {
@@ -82,7 +82,7 @@ LUASOCKET_PRIVATE double timeout_get(p_timeout tm) {
82* Returns 82* Returns
83* start field of structure 83* start field of structure
84\*-------------------------------------------------------------------------*/ 84\*-------------------------------------------------------------------------*/
85LUASOCKET_PRIVATE double timeout_getstart(p_timeout tm) { 85double timeout_getstart(p_timeout tm) {
86 return tm->start; 86 return tm->start;
87} 87}
88 88
@@ -94,7 +94,7 @@ LUASOCKET_PRIVATE double timeout_getstart(p_timeout tm) {
94* Returns 94* Returns
95* the number of ms left or -1 if there is no time limit 95* the number of ms left or -1 if there is no time limit
96\*-------------------------------------------------------------------------*/ 96\*-------------------------------------------------------------------------*/
97LUASOCKET_PRIVATE double timeout_getretry(p_timeout tm) { 97double timeout_getretry(p_timeout tm) {
98 if (tm->block < 0.0 && tm->total < 0.0) { 98 if (tm->block < 0.0 && tm->total < 0.0) {
99 return -1; 99 return -1;
100 } else if (tm->block < 0.0) { 100 } else if (tm->block < 0.0) {
@@ -114,7 +114,7 @@ LUASOCKET_PRIVATE double timeout_getretry(p_timeout tm) {
114* Input 114* Input
115* tm: timeout control structure 115* tm: timeout control structure
116\*-------------------------------------------------------------------------*/ 116\*-------------------------------------------------------------------------*/
117LUASOCKET_PRIVATE p_timeout timeout_markstart(p_timeout tm) { 117p_timeout timeout_markstart(p_timeout tm) {
118 tm->start = timeout_gettime(); 118 tm->start = timeout_gettime();
119 return tm; 119 return tm;
120} 120}
@@ -125,7 +125,7 @@ LUASOCKET_PRIVATE p_timeout timeout_markstart(p_timeout tm) {
125* time in s. 125* time in s.
126\*-------------------------------------------------------------------------*/ 126\*-------------------------------------------------------------------------*/
127#ifdef _WIN32 127#ifdef _WIN32
128LUASOCKET_PRIVATE double timeout_gettime(void) { 128double timeout_gettime(void) {
129 FILETIME ft; 129 FILETIME ft;
130 double t; 130 double t;
131 GetSystemTimeAsFileTime(&ft); 131 GetSystemTimeAsFileTime(&ft);
@@ -135,7 +135,7 @@ LUASOCKET_PRIVATE double timeout_gettime(void) {
135 return (t - 11644473600.0); 135 return (t - 11644473600.0);
136} 136}
137#else 137#else
138LUASOCKET_PRIVATE double timeout_gettime(void) { 138double timeout_gettime(void) {
139 struct timeval v; 139 struct timeval v;
140 gettimeofday(&v, (struct timezone *) NULL); 140 gettimeofday(&v, (struct timezone *) NULL);
141 /* Unix Epoch time (time since January 1, 1970 (UTC)) */ 141 /* Unix Epoch time (time since January 1, 1970 (UTC)) */
@@ -146,7 +146,7 @@ LUASOCKET_PRIVATE double timeout_gettime(void) {
146/*-------------------------------------------------------------------------*\ 146/*-------------------------------------------------------------------------*\
147* Initializes module 147* Initializes module
148\*-------------------------------------------------------------------------*/ 148\*-------------------------------------------------------------------------*/
149LUASOCKET_PRIVATE int timeout_open(lua_State *L) { 149int timeout_open(lua_State *L) {
150 luaL_setfuncs(L, func, 0); 150 luaL_setfuncs(L, func, 0);
151 return 0; 151 return 0;
152} 152}
@@ -157,7 +157,7 @@ LUASOCKET_PRIVATE int timeout_open(lua_State *L) {
157* time: time out value in seconds 157* time: time out value in seconds
158* mode: "b" for block timeout, "t" for total timeout. (default: b) 158* mode: "b" for block timeout, "t" for total timeout. (default: b)
159\*-------------------------------------------------------------------------*/ 159\*-------------------------------------------------------------------------*/
160LUASOCKET_PRIVATE int timeout_meth_settimeout(lua_State *L, p_timeout tm) { 160int timeout_meth_settimeout(lua_State *L, p_timeout tm) {
161 double t = luaL_optnumber(L, 2, -1); 161 double t = luaL_optnumber(L, 2, -1);
162 const char *mode = luaL_optstring(L, 3, "b"); 162 const char *mode = luaL_optstring(L, 3, "b");
163 switch (*mode) { 163 switch (*mode) {
@@ -179,7 +179,7 @@ LUASOCKET_PRIVATE int timeout_meth_settimeout(lua_State *L, p_timeout tm) {
179* Gets timeout values for IO operations 179* Gets timeout values for IO operations
180* Lua Output: block, total 180* Lua Output: block, total
181\*-------------------------------------------------------------------------*/ 181\*-------------------------------------------------------------------------*/
182LUASOCKET_PRIVATE int timeout_meth_gettimeout(lua_State *L, p_timeout tm) { 182int timeout_meth_gettimeout(lua_State *L, p_timeout tm) {
183 lua_pushnumber(L, tm->block); 183 lua_pushnumber(L, tm->block);
184 lua_pushnumber(L, tm->total); 184 lua_pushnumber(L, tm->total);
185 return 2; 185 return 2;
@@ -201,7 +201,7 @@ static int timeout_lua_gettime(lua_State *L)
201* Sleep for n seconds. 201* Sleep for n seconds.
202\*-------------------------------------------------------------------------*/ 202\*-------------------------------------------------------------------------*/
203#ifdef _WIN32 203#ifdef _WIN32
204LUASOCKET_PRIVATE int timeout_lua_sleep(lua_State *L) 204int timeout_lua_sleep(lua_State *L)
205{ 205{
206 double n = luaL_checknumber(L, 1); 206 double n = luaL_checknumber(L, 1);
207 if (n < 0.0) n = 0.0; 207 if (n < 0.0) n = 0.0;
@@ -211,7 +211,7 @@ LUASOCKET_PRIVATE int timeout_lua_sleep(lua_State *L)
211 return 0; 211 return 0;
212} 212}
213#else 213#else
214LUASOCKET_PRIVATE int timeout_lua_sleep(lua_State *L) 214int timeout_lua_sleep(lua_State *L)
215{ 215{
216 double n = luaL_checknumber(L, 1); 216 double n = luaL_checknumber(L, 1);
217 struct timespec t, r; 217 struct timespec t, r;
@@ -228,3 +228,7 @@ LUASOCKET_PRIVATE int timeout_lua_sleep(lua_State *L)
228 return 0; 228 return 0;
229} 229}
230#endif 230#endif
231
232#ifndef _WIN32
233#pragma GCC visibility pop
234#endif
diff --git a/src/timeout.h b/src/timeout.h
index af90231..df05eaf 100644
--- a/src/timeout.h
+++ b/src/timeout.h
@@ -4,7 +4,7 @@
4* Timeout management functions 4* Timeout management functions
5* LuaSocket toolkit 5* LuaSocket toolkit
6\*=========================================================================*/ 6\*=========================================================================*/
7#include "lua.h" 7#include "luasocket.h"
8 8
9/* timeout control structure */ 9/* timeout control structure */
10typedef struct t_timeout_ { 10typedef struct t_timeout_ {
@@ -14,16 +14,23 @@ typedef struct t_timeout_ {
14} t_timeout; 14} t_timeout;
15typedef t_timeout *p_timeout; 15typedef t_timeout *p_timeout;
16 16
17int timeout_open(lua_State *L); 17#pragma GCC visibility push(hidden)
18
18void timeout_init(p_timeout tm, double block, double total); 19void timeout_init(p_timeout tm, double block, double total);
19double timeout_get(p_timeout tm); 20double timeout_get(p_timeout tm);
21double timeout_getstart(p_timeout tm);
20double timeout_getretry(p_timeout tm); 22double timeout_getretry(p_timeout tm);
21p_timeout timeout_markstart(p_timeout tm); 23p_timeout timeout_markstart(p_timeout tm);
22double timeout_getstart(p_timeout tm); 24
23double timeout_gettime(void); 25double timeout_gettime(void);
26
27int timeout_open(lua_State *L);
28
24int timeout_meth_settimeout(lua_State *L, p_timeout tm); 29int timeout_meth_settimeout(lua_State *L, p_timeout tm);
25int timeout_meth_gettimeout(lua_State *L, p_timeout tm); 30int timeout_meth_gettimeout(lua_State *L, p_timeout tm);
26 31
32#pragma GCC visibility pop
33
27#define timeout_iszero(tm) ((tm)->block == 0.0) 34#define timeout_iszero(tm) ((tm)->block == 0.0)
28 35
29#endif /* TIMEOUT_H */ 36#endif /* TIMEOUT_H */