Software /
code /
prosody
Comparison
plugins/mod_posix.lua @ 12297:249eb306f668
mod_posix: Run signal handlers in the startup thread
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 06 Oct 2021 14:50:47 +0200 |
parent | 11830:7fe2fbfbdb1c |
child | 12977:74b9e05af71e |
comparison
equal
deleted
inserted
replaced
12296:49ebac8a5260 | 12297:249eb306f668 |
---|---|
128 -- Set signal handlers | 128 -- Set signal handlers |
129 if have_signal then | 129 if have_signal then |
130 module:add_timer(0, function () | 130 module:add_timer(0, function () |
131 signal.signal("SIGTERM", function () | 131 signal.signal("SIGTERM", function () |
132 module:log("warn", "Received SIGTERM"); | 132 module:log("warn", "Received SIGTERM"); |
133 prosody.unlock_globals(); | 133 prosody.main_thread:run(function () |
134 prosody.shutdown("Received SIGTERM"); | 134 prosody.unlock_globals(); |
135 prosody.lock_globals(); | 135 prosody.shutdown("Received SIGTERM"); |
136 prosody.lock_globals(); | |
137 end); | |
136 end); | 138 end); |
137 | 139 |
138 signal.signal("SIGHUP", function () | 140 signal.signal("SIGHUP", function () |
139 module:log("info", "Received SIGHUP"); | 141 module:log("info", "Received SIGHUP"); |
140 prosody.reload_config(); | 142 prosody.main_thread:run(function () |
143 prosody.reload_config(); | |
144 end); | |
141 -- this also reloads logging | 145 -- this also reloads logging |
142 end); | 146 end); |
143 | 147 |
144 signal.signal("SIGINT", function () | 148 signal.signal("SIGINT", function () |
145 module:log("info", "Received SIGINT"); | 149 module:log("info", "Received SIGINT"); |
146 prosody.unlock_globals(); | 150 prosody.main_thread:run(function () |
147 prosody.shutdown("Received SIGINT"); | 151 prosody.unlock_globals(); |
148 prosody.lock_globals(); | 152 prosody.shutdown("Received SIGINT"); |
153 prosody.lock_globals(); | |
154 end); | |
149 end); | 155 end); |
150 | 156 |
151 signal.signal("SIGUSR1", function () | 157 signal.signal("SIGUSR1", function () |
152 module:log("info", "Received SIGUSR1"); | 158 module:log("info", "Received SIGUSR1"); |
153 module:fire_event("signal/SIGUSR1"); | 159 module:fire_event("signal/SIGUSR1"); |