summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/luv/examples/cqueues-slave.lua
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/luv/examples/cqueues-slave.lua')
-rw-r--r--3rdparty/luv/examples/cqueues-slave.lua55
1 files changed, 0 insertions, 55 deletions
diff --git a/3rdparty/luv/examples/cqueues-slave.lua b/3rdparty/luv/examples/cqueues-slave.lua
deleted file mode 100644
index 599e7c6ded7..00000000000
--- a/3rdparty/luv/examples/cqueues-slave.lua
+++ /dev/null
@@ -1,55 +0,0 @@
---[[
-Demonstrates using cqueues with a luv mainloop
-
-Starts a simple sleep+print loop using each library's native form.
-They should print intertwined.
-]]
-
-local cqueues = require "cqueues"
-local uv = require "luv"
-
-local cq = cqueues.new()
-
-do
- local timer = uv.new_timer()
- local function reset_timer()
- local timeout = cq:timeout()
- if timeout then
- -- libuv takes milliseconds as an integer,
- -- while cqueues gives timeouts as a floating point number
- -- use `math.ceil` as we'd rather wake up late than early
- timer:set_repeat(math.ceil(timeout * 1000))
- timer:again()
- else
- -- stop timer for now; it may be restarted later.
- timer:stop()
- end
- end
- local function onready()
- -- Step the cqueues loop once (sleeping for max 0 seconds)
- assert(cq:step(0))
- reset_timer()
- end
- -- Need to call `start` on libuv timer now
- -- to provide callback and so that `again` works
- timer:start(0, 0, onready)
- -- Ask libuv to watch the cqueue pollfd
- uv.new_poll(cq:pollfd()):start(cq:events(), onready)
-end
-
--- Adds a new function to the scheduler `cq`
--- The functions is an infinite loop that sleeps for 1 second and prints
-cq:wrap(function()
- while true do
- cqueues.sleep(1)
- print("HELLO FROM CQUEUES")
- end
-end)
-
--- Start a luv timer that fires every 1 second
-uv.new_timer():start(1000, 1000, function()
- print("HELLO FROM LUV")
-end)
-
--- Run luv mainloop
-uv.run()