Software /
code /
prosody
Comparison
net/server_epoll.lua @ 10992:df3ee12acd8c
net.server_epoll: Add setting for turning off callback protections
Might improve (CPU) performance at the risk of triggering top level
errors.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 30 Jun 2020 18:31:48 +0200 |
parent | 10991:aa85cb5b859f |
child | 11014:05fefde93036 |
comparison
equal
deleted
inserted
replaced
10991:aa85cb5b859f | 10992:df3ee12acd8c |
---|---|
72 | 72 |
73 -- EXPERIMENTAL | 73 -- EXPERIMENTAL |
74 -- Whether to kill connections in case of callback errors. | 74 -- Whether to kill connections in case of callback errors. |
75 fatal_errors = false; | 75 fatal_errors = false; |
76 | 76 |
77 -- Or disable protection (like server_select) for potential performance gains | |
78 protect_listeners = true; | |
79 | |
77 -- Attempt writes instantly | 80 -- Attempt writes instantly |
78 opportunistic_writes = false; | 81 opportunistic_writes = false; |
79 }}; | 82 }}; |
80 local cfg = default_config.__index; | 83 local cfg = default_config.__index; |
81 | 84 |
189 end | 192 end |
190 local listener = self.listeners["on"..what]; | 193 local listener = self.listeners["on"..what]; |
191 if not listener then | 194 if not listener then |
192 self:noise("Missing listener 'on%s'", what); -- uncomment for development and debugging | 195 self:noise("Missing listener 'on%s'", what); -- uncomment for development and debugging |
193 return; | 196 return; |
197 end | |
198 if not cfg.protect_listeners then | |
199 return listener(self, ...); | |
194 end | 200 end |
195 local onerror = self.listeners.onerror or traceback; | 201 local onerror = self.listeners.onerror or traceback; |
196 local ok, err = xpcall(listener, onerror, self, ...); | 202 local ok, err = xpcall(listener, onerror, self, ...); |
197 if not ok then | 203 if not ok then |
198 if cfg.fatal_errors then | 204 if cfg.fatal_errors then |