From f7b4f850de76533f91584bc7578ff12f6a8b5c70 Mon Sep 17 00:00:00 2001 From: Alexey Melnichuk Date: Thu, 9 Jan 2014 12:59:35 +0400 Subject: Add. library version --- src/llthread.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ test/test_llthreads.lua | 2 ++ 2 files changed, 47 insertions(+) diff --git a/src/llthread.c b/src/llthread.c index 88d3805..27253e5 100644 --- a/src/llthread.c +++ b/src/llthread.c @@ -2,6 +2,11 @@ # define USE_PTHREAD #endif +#define LLTHREAD_VERSION_MAJOR 0 +#define LLTHREAD_VERSION_MINOR 1 +#define LLTHREAD_VERSION_PATCH 0 +#define LLTHREAD_VERSION_COMMENT "dev" + #ifndef USE_PTHREAD # include # include @@ -607,6 +612,40 @@ static const struct luaL_Reg l_llthread_meth[] = { //} +//{ version + +static int l_llthread_version(lua_State *L){ + lua_pushnumber(L, LLTHREAD_VERSION_MAJOR); + lua_pushnumber(L, LLTHREAD_VERSION_MINOR); + lua_pushnumber(L, LLTHREAD_VERSION_PATCH); +#ifdef LLTHREAD_VERSION_COMMENT + if(LLTHREAD_VERSION_COMMENT[0]){ + lua_pushliteral(L, LLTHREAD_VERSION_COMMENT); + return 4; + } +#endif + return 3; +} + +static int l_llthread_push_version(lua_State *L){ + lua_pushnumber(L, LLTHREAD_VERSION_MAJOR); + lua_pushliteral(L, "."); + lua_pushnumber(L, LLTHREAD_VERSION_MINOR); + lua_pushliteral(L, "."); + lua_pushnumber(L, LLTHREAD_VERSION_PATCH); +#ifdef LLTHREAD_VERSION_COMMENT + if(LLTHREAD_VERSION_COMMENT[0]){ + lua_pushliteral(L, "-"LLTHREAD_VERSION_COMMENT); + lua_concat(L, 6); + } + else +#endif + lua_concat(L, 5); + return 1; +} + +//} + static int l_llthread_set_logger(lua_State *L){ lua_settop(L, 1); luaL_argcheck(L, lua_isfunction(L, 1), 1, "function expected"); @@ -617,6 +656,7 @@ static int l_llthread_set_logger(lua_State *L){ static const struct luaL_Reg l_llthreads_lib[] = { {"new", l_llthread_new }, {"set_logger", l_llthread_set_logger }, + {"version", l_llthread_version }, {NULL, NULL} }; @@ -628,5 +668,10 @@ LLTHREADS_EXPORT_API int LLTHREAD_OPEN_NAME(lua_State *L) { lua_newtable(L); luaL_setfuncs(L, l_llthreads_lib, 0); + + lua_pushliteral(L, "_VERSION"); + l_llthread_push_version(L); + lua_rawset(L, -3); + return 1; } diff --git a/test/test_llthreads.lua b/test/test_llthreads.lua index df8c6a2..e0e214b 100644 --- a/test/test_llthreads.lua +++ b/test/test_llthreads.lua @@ -21,6 +21,8 @@ local llthreads = require"llthreads" local sleep = require"utils".sleep +print("LLThreads version : ", llthreads._VERSION) + local function detached_thread(...) local thread = llthreads.new([[ print("print_detached_thread:", ...) ]], ...) -- start detached thread -- cgit v1.2.3-55-g6feb