Mercurial > prosody-hg
comparison plugins/mod_posix.lua @ 8663:a7a9d9511dc1
mod_posix: Delay setting signal handlers until in the main thread
Signal handlers work by setting a debug hook. Hooks are per-thread, so we need this to be called in the main thread. However module loading is not in the main thread anymore.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 22 Mar 2018 21:18:58 +0000 |
| parents | 7d9a2c200736 |
| children | 982529dd0bed |
comparison
equal
deleted
inserted
replaced
| 8662:a4e63b037a2a | 8663:a7a9d9511dc1 |
|---|---|
| 159 | 159 |
| 160 module:hook("server-stopped", remove_pidfile); | 160 module:hook("server-stopped", remove_pidfile); |
| 161 | 161 |
| 162 -- Set signal handlers | 162 -- Set signal handlers |
| 163 if have_signal then | 163 if have_signal then |
| 164 signal.signal("SIGTERM", function () | 164 module:add_timer(0, function () |
| 165 module:log("warn", "Received SIGTERM"); | 165 signal.signal("SIGTERM", function () |
| 166 prosody.unlock_globals(); | 166 module:log("warn", "Received SIGTERM"); |
| 167 prosody.shutdown("Received SIGTERM"); | 167 prosody.unlock_globals(); |
| 168 prosody.lock_globals(); | 168 prosody.shutdown("Received SIGTERM"); |
| 169 end); | 169 prosody.lock_globals(); |
| 170 end); | |
| 170 | 171 |
| 171 signal.signal("SIGHUP", function () | 172 signal.signal("SIGHUP", function () |
| 172 module:log("info", "Received SIGHUP"); | 173 module:log("info", "Received SIGHUP"); |
| 173 prosody.reload_config(); | 174 prosody.reload_config(); |
| 174 prosody.reopen_logfiles(); | 175 prosody.reopen_logfiles(); |
| 175 end); | 176 end); |
| 176 | 177 |
| 177 signal.signal("SIGINT", function () | 178 signal.signal("SIGINT", function () |
| 178 module:log("info", "Received SIGINT"); | 179 module:log("info", "Received SIGINT"); |
| 179 prosody.unlock_globals(); | 180 prosody.unlock_globals(); |
| 180 prosody.shutdown("Received SIGINT"); | 181 prosody.shutdown("Received SIGINT"); |
| 181 prosody.lock_globals(); | 182 prosody.lock_globals(); |
| 183 end); | |
| 182 end); | 184 end); |
| 183 end | 185 end |
