Merge pull request #6108 from annando/fork-check
Add some hook to check if hook should be forked
This commit is contained in:
commit
a30876977d
|
@ -693,6 +693,9 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
|
|||
|
||||
Addon::callHooks('logged_in', $a->user);
|
||||
|
||||
### src/Core/Hook.php
|
||||
|
||||
self::callSingle(self::getApp(), 'hook_fork', $fork_hook, $hookdata);
|
||||
|
||||
### src/Core/Worker.php
|
||||
|
||||
|
|
|
@ -136,6 +136,22 @@ class Hook extends BaseObject
|
|||
{
|
||||
if (array_key_exists($name, self::$hooks)) {
|
||||
foreach (self::$hooks[$name] as $hook) {
|
||||
// Call a hook to check if this hook call needs to be forked
|
||||
if (array_key_exists('hook_fork', self::$hooks)) {
|
||||
$hookdata = ['name' => $name, 'data' => $data, 'execute' => true];
|
||||
|
||||
foreach (self::$hooks['hook_fork'] as $fork_hook) {
|
||||
if ($hook[0] != $fork_hook[0]) {
|
||||
continue;
|
||||
}
|
||||
self::callSingle(self::getApp(), 'hook_fork', $fork_hook, $hookdata);
|
||||
}
|
||||
|
||||
if (!$hookdata['execute']) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
Worker::add($priority, 'ForkHook', $name, $hook, $data);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user