summaryrefslogtreecommitdiffstats
path: root/lem/io/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'lem/io/server.c')
-rw-r--r--lem/io/server.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/lem/io/server.c b/lem/io/server.c
index 08c4d54..a47bf03 100644
--- a/lem/io/server.c
+++ b/lem/io/server.c
@@ -16,6 +16,21 @@
* License along with LEM. If not, see <http://www.gnu.org/licenses/>.
*/
+static struct ev_io *
+server_new(lua_State *T, int fd, int mt)
+{
+ /* create userdata and set the metatable */
+ struct ev_io *w = lua_newuserdata(T, sizeof(struct ev_io));
+ lua_pushvalue(T, mt);
+ lua_setmetatable(T, -2);
+
+ /* initialize userdata */
+ ev_io_init(w, NULL, fd, EV_READ);
+ w->data = NULL;
+
+ return w;
+}
+
static int
server_closed(lua_State *T)
{