So we avoid running os.execute

Signed-off-by: Natanael Copa <nc...@alpinelinux.org>
---
 src/lua-lxc/core.c |  9 +++++++++
 src/lxc/lxc-top    | 12 ++----------
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/lua-lxc/core.c b/src/lua-lxc/core.c
index d404707..504e147 100644
--- a/src/lua-lxc/core.c
+++ b/src/lua-lxc/core.c
@@ -27,11 +27,13 @@
 #include <lauxlib.h>
 #include <assert.h>
 #include <string.h>
+#include <unistd.h>
 #include <lxc/lxccontainer.h>
 
 #if LUA_VERSION_NUM < 502
 #define luaL_newlib(L,l) (lua_newtable(L), luaL_register(L,NULL,l))
 #define luaL_setfuncs(L,l,n) (assert(n==0), luaL_register(L,NULL,l))
+#define luaL_checkunsigned(L,n) luaL_checknumber(L,n)
 #endif
 
 #ifdef NO_CHECK_UDATA
@@ -379,10 +381,17 @@ static int lxc_default_config_path_get(lua_State *L) {
     return 1;
 }
 
+/* utility functions */
+static int lxc_util_usleep(lua_State *L) {
+    usleep((useconds_t)luaL_checkunsigned(L, 1));
+    return 0;
+}
+
 static luaL_Reg lxc_lib_methods[] = {
     {"version_get",            lxc_version_get},
     {"default_config_path_get",        lxc_default_config_path_get},
     {"container_new",          container_new},
+    {"usleep",                 lxc_util_usleep},
     {NULL, NULL}
 };
 
diff --git a/src/lxc/lxc-top b/src/lxc/lxc-top
index 31aaecf..8e8bafb 100755
--- a/src/lxc/lxc-top
+++ b/src/lxc/lxc-top
@@ -22,6 +22,7 @@
 --
 
 local lxc    = require("lxc")
+local core   = require("lxc.core")
 local getopt = require("alt_getopt")
 local lfs    = require("lfs")
 
@@ -95,15 +96,6 @@ function strsisize(size, width)
     return string.format("%3d.00   ", size)
 end
 
-function usleep(n)
-    if (n ~= 0) then
-       ret = os.execute("usleep " .. tonumber(n))
-       if (ret ~= 0) then
-           os.exit(0)
-       end
-    end
-end
-
 function tty_lines()
     local rows = 25
     local f = assert(io.popen("stty -a | head -n 1"))
@@ -238,5 +230,5 @@ do
     end
     stats_print(string.format("TOTAL (%-2d)", #containers), stats_total)
     io.flush()
-    usleep(optarg["d"] * 1000000)
+    core.usleep(optarg["d"] * 1000000)
 end
-- 
1.8.4


------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to