diff options
-rw-r--r-- | teal-src/util/poll.d.tl | 5 | ||||
-rw-r--r-- | util-src/poll.c | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/teal-src/util/poll.d.tl b/teal-src/util/poll.d.tl index 7e346161..28fd982b 100644 --- a/teal-src/util/poll.d.tl +++ b/teal-src/util/poll.d.tl @@ -19,6 +19,11 @@ local record lib new : function () : state ENOENT : integer EEXIST : integer + enum api_backend + "epoll" + "select" + end + api : api_backend end return lib diff --git a/util-src/poll.c b/util-src/poll.c index be0f6ffd..4bd897ae 100644 --- a/util-src/poll.c +++ b/util-src/poll.c @@ -14,8 +14,10 @@ #if defined(__linux__) #define USE_EPOLL +#define POLL_BACKEND "epoll" #else #define USE_SELECT +#define POLL_BACKEND "select" #endif #ifdef USE_EPOLL @@ -31,12 +33,7 @@ #include <lualib.h> #include <lauxlib.h> -#ifdef USE_EPOLL -#define STATE_MT "util.poll<epoll>" -#endif -#ifdef USE_SELECT -#define STATE_MT "util.poll<select>" -#endif +#define STATE_MT "util.poll<" POLL_BACKEND ">" #if (LUA_VERSION_NUM == 501) #define luaL_setmetatable(L, tname) luaL_getmetatable(L, tname); lua_setmetatable(L, -2) @@ -487,6 +484,9 @@ int luaopen_util_poll(lua_State *L) { push_errno(EEXIST); push_errno(ENOENT); + lua_pushliteral(L, POLL_BACKEND); + lua_setfield(L, -2, "api"); + } return 1; } |