solanum-vs-hackint-and-char.../modules/core
Aaron Jones a9505057c5 MODRESTART/MODRELOAD: Defer reloading more quickly
Commit 41390bfe5f fixed a bug whereby the processing
of a MODRESTART command could result in a crash. The approach
taken in this fix was to defer the reloading of all modules
so that the call stack does not contain functions located in
modules that are being reloaded. It did this by scheduling a
one-shot timer event for 1 second in the future, in the absense
of any better deferral mechanism at the time. Timers are
processed by the event loop, which is core to IRCd and cannot
be reloaded.

Commit 59ea3c6753 introduced a mechanism to defer the
execution of a function until all events have been processed by
the event loop, in order to fix a REHASH bug that could result
in a crash due to closing and reopening listener sockets with a
pending socket connection event to process after the REHASH was
completed.

Rework commit 41390bfe5f to use the new deferral
mechanism introduced by commit 59ea3c6753 and do the
same for module reloads.
2023-11-20 14:01:33 +00:00
..
m_ban.c Keep propagated bans in a dictionary, not a list 2021-06-08 21:57:43 +01:00
m_die.c Remove shared blocks 2020-11-01 04:20:44 +00:00
m_error.c make more snotes L_NETWIDE 2020-11-08 14:30:41 -05:00
m_identified.c Implement the solanum.chat/identify-msg vendor cap 2020-10-16 21:47:38 +01:00
m_join.c Cast time_t to long long when printing 2022-07-01 03:43:36 -04:00
m_kick.c kick,remove: don't confuse source and target membership 2021-07-13 23:50:03 +01:00
m_kill.c Unify oper:{global,local}_kill 2020-10-25 20:02:03 +00:00
m_message.c Add oper:free_target (#374) 2022-09-26 19:50:11 +01:00
m_mode.c EBMASK capab, to burst BMASK metadata (#354) 2022-08-20 01:35:54 +01:00
m_modules.c MODRESTART/MODRELOAD: Defer reloading more quickly 2023-11-20 14:01:33 +00:00
m_nick.c client: refactor del_all_accepts to allow skipping own accept list 2023-11-06 17:31:44 +00:00
m_part.c Replace most checks for +o with oper:general 2020-08-04 22:58:30 +01:00
m_quit.c Replace most checks for +o with oper:general 2020-08-04 22:58:30 +01:00
m_server.c Get rid of hub_mask/leaf_mask 2020-11-14 18:22:08 +00:00
m_squit.c make more snotes L_NETWIDE 2020-11-08 14:30:41 -05:00