summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/luv/examples/talking-to-children.lua
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/luv/examples/talking-to-children.lua')
-rw-r--r--3rdparty/luv/examples/talking-to-children.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/3rdparty/luv/examples/talking-to-children.lua b/3rdparty/luv/examples/talking-to-children.lua
new file mode 100644
index 00000000000..10a53ef8c88
--- /dev/null
+++ b/3rdparty/luv/examples/talking-to-children.lua
@@ -0,0 +1,47 @@
+local p = require('lib/utils').prettyPrint
+local uv = require('luv')
+
+local stdout = uv.new_pipe(false)
+local stderr = uv.new_pipe( false)
+local stdin = uv.new_pipe(false)
+
+local handle, pid
+
+local function onexit(code, signal)
+ p("exit", {code=code,signal=signal})
+end
+
+local function onclose()
+ p("close")
+end
+
+local function onread(err, chunk)
+ assert(not err, err)
+ if (chunk) then
+ p("data", {data=chunk})
+ else
+ p("end")
+ end
+end
+
+local function onshutdown()
+ uv.close(handle, onclose)
+end
+
+handle, pid = uv.spawn("cat", {
+ stdio = {stdin, stdout, stderr}
+}, onexit)
+
+p{
+ handle=handle,
+ pid=pid
+}
+
+uv.read_start(stdout, onread)
+uv.read_start(stderr, onread)
+uv.write(stdin, "Hello World")
+uv.shutdown(stdin, onshutdown)
+
+uv.run()
+uv.walk(uv.close)
+uv.run()