}
+/*
+ * This function expects to called during shutdown
+ * should be set via register_shutdown_function()
+ * in lib/setup.php .
+ *
+ * Right now we do it only if we are under apache, to
+ * make sure apache children that hog too much mem are
+ * killed.
+ *
+ */
+function moodle_request_shutdown() {
+
+ // initially, we are only ever called under apache
+ // but check just in case
+ if (function_exists('apache_child_terminate') && function_exists('memory_get_usage')) {
+ if (empty($CFG->apachemaxmem)) {
+ $CFG->apachemaxmem = 10000000; // default 10MiB
+ }
+ if (memory_get_usage() > (int)$CFG->apachemaxmem) {
+ trigger_error('Mem usage over $CFG->apachemaxmem: marking child for reaping.');
+ apache_child_terminate();
+ }
+ }
+}
+
/**
* If new messages are waiting for the current user, then return
* Javascript code to create a popup window
}
+/// For now, only needed under apache (and probably unstable in other contexts)
+ if (function_exists('apache_child_terminate')) {
+ register_shutdown_function('moodle_request_shutdown');
+ }
+
//// Defining the site
if ($SITE = get_site()) {
/**