From efc0d1e7eafcdba7f9207f777a00f28bb48da5e7 Mon Sep 17 00:00:00 2001 From: rebecca Date: Sat, 12 Sep 2026 22:21:31 +0100 Subject: improve error reporting --- bs.lua | 9 +++++++++ main.lua | 6 +++--- pylon.lua | 6 ++++-- 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 bs.lua diff --git a/bs.lua b/bs.lua new file mode 100644 index 0000000..bb284cc --- /dev/null +++ b/bs.lua @@ -0,0 +1,9 @@ +local M = {} +-- handles errors sensibly +function M.loop_correctly(context, cq) + local ok, err, code, thread, pollee, fd = cq:loop() + error('👉'..context..' '..debug.traceback(thread,err)..'👈',0) +end + +return M + diff --git a/main.lua b/main.lua index b1cb708..a500284 100644 --- a/main.lua +++ b/main.lua @@ -1,9 +1,10 @@ local cqueues = require'cqueues' local class = require'r.class' +local pprint = require'pprint' +local bs = require 'bs' local config = require'config' local Channel = require'channel' -local pprint = require'pprint' local pylon_classes = { irc = require'irc.pylon', @@ -62,8 +63,7 @@ function Wilson.run(self) self.cq:wrap(pylon.run, pylon) print("now running pylon", pylonname) end - print('toplevel',self.cq:loop()) - cqueues.sleep(2) + bs.loop_correctly('(toplevel)',self.cq) end local config_file = assert(io.open("wilson.ini","r")) diff --git a/pylon.lua b/pylon.lua index cd0ae9e..7841f11 100644 --- a/pylon.lua +++ b/pylon.lua @@ -1,7 +1,9 @@ local cqueues = require'cqueues' - +local pprint = require 'pprint' local class = require 'r.class' local qw = require 'r.qw' + +local bs = require'bs' local Queue = require 'queue' local BasePylon = class() @@ -25,6 +27,6 @@ function BasePylon.run(self) self.cq:wrap(self.recving, self) self.cq:wrap(self.sending, self) end) - print(self.name, self.cq:loop()) + bs.loop_correctly(self.name, self.cq) end return BasePylon -- cgit v1.2.3