summaryrefslogtreecommitdiff
path: root/luxio.c
diff options
context:
space:
mode:
authorRob Kendrick (humdrum) <rjek@rjek.com>2012-05-08 16:20:24 +0100
committerRob Kendrick (humdrum) <rjek@rjek.com>2012-05-08 16:20:24 +0100
commita20dd1540cd54565cb119e68b75fcb4c34cb787c (patch)
tree92cf89534672737f14b1c3ed77f84d6fb114c953 /luxio.c
parentd5535b8419d717d7d60953cd2c0470a3c6e5f5ab (diff)
downloadluxio-a20dd1540cd54565cb119e68b75fcb4c34cb787c.tar.gz
nanosleep
Diffstat (limited to 'luxio.c')
-rw-r--r--luxio.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/luxio.c b/luxio.c
index 4a5e285..1f89dd9 100644
--- a/luxio.c
+++ b/luxio.c
@@ -1320,7 +1320,22 @@ luxio_tcsetpgrp(lua_State *L) /* 7.2.4 */
/* TODO: clock_settime(), clock_gettime(), clock_getres() 14.2.1 */
/* Timer functions excluded, based on signals */
-/* TODO: nanosleep() 14.2.5 */
+
+static int
+luxio_nanosleep(lua_State *L) /* 14.2.5 */
+{
+ struct timespec req, rem = { 0, 0 };
+
+ req.tv_sec = luaL_checkinteger(L, 1);
+ req.tv_nsec = luaL_checkinteger(L, 2);
+
+ lua_pushinteger(L, nanosleep(&req, &rem));
+ lua_pushinteger(L, errno);
+ lua_pushinteger(L, rem.tv_sec);
+ lua_pushinteger(L, rem.tv_nsec);
+
+ return 4;
+}
/* 15 Message passing ********************************************************/
@@ -2345,6 +2360,8 @@ luxio_functions[] = {
{ "tcgetpgrp", luxio_tcgetpgrp},
{ "tcsetpgrp", luxio_tcsetpgrp},
+ { "nanosleep", luxio_nanosleep },
+
LUXIO_MQ_FUNCS
LUXIO_MQ_FUNCS_2001