mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/10046] Remove calls to register_shutdown_function() in cron.php
After reading some PHP source as well as the PHP manual we have arrived at the following two situations with one conclusion: * SAPI supports flush(): o call to flush() is enough to stop the page from displaying as loading o and thus register_shutdown_function is unnecessary * SAPI does not support flush(): o neither a call to flush() nor the beginning of shutdown phase, which calls registered shutdown functions can flush anything to the client o and thus register_shutdown_function is unnecessary Thanks to lacton for reporting the initial issue. Thanks to nn- and naderman for doing all the dirty works. PHPBB3-10046
This commit is contained in:
parent
2f57bfb6f2
commit
ec15ac92f3
1 changed files with 10 additions and 81 deletions
|
@ -21,7 +21,6 @@ $user->session_begin(false);
|
|||
$auth->acl($user->data);
|
||||
|
||||
$cron_type = request_var('cron_type', '');
|
||||
$use_shutdown_function = (@function_exists('register_shutdown_function')) ? true : false;
|
||||
|
||||
// Output transparent gif
|
||||
header('Cache-Control: no-cache');
|
||||
|
@ -79,23 +78,10 @@ switch ($cron_type)
|
|||
break;
|
||||
}
|
||||
|
||||
// A user reported using the mail() function while using shutdown does not work. We do not want to risk that.
|
||||
if ($use_shutdown_function && !$config['smtp_delivery'])
|
||||
{
|
||||
$use_shutdown_function = false;
|
||||
}
|
||||
|
||||
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
|
||||
$queue = new queue();
|
||||
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function(array(&$queue, 'process'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$queue->process();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -106,14 +92,7 @@ switch ($cron_type)
|
|||
break;
|
||||
}
|
||||
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function(array(&$cache, 'tidy'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$cache->tidy();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -138,14 +117,7 @@ switch ($cron_type)
|
|||
break;
|
||||
}
|
||||
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function(array(&$search, 'tidy'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$search->tidy();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -158,14 +130,7 @@ switch ($cron_type)
|
|||
|
||||
include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
|
||||
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('tidy_warnings');
|
||||
}
|
||||
else
|
||||
{
|
||||
tidy_warnings();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -178,14 +143,7 @@ switch ($cron_type)
|
|||
|
||||
include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
|
||||
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('tidy_database');
|
||||
}
|
||||
else
|
||||
{
|
||||
tidy_database();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -196,14 +154,7 @@ switch ($cron_type)
|
|||
break;
|
||||
}
|
||||
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function(array(&$user, 'session_gc'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$user->session_gc();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -229,44 +180,22 @@ switch ($cron_type)
|
|||
include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
|
||||
|
||||
if ($row['prune_days'])
|
||||
{
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('auto_prune', $row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']);
|
||||
}
|
||||
else
|
||||
{
|
||||
auto_prune($row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']);
|
||||
}
|
||||
}
|
||||
|
||||
if ($row['prune_viewed'])
|
||||
{
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('auto_prune', $row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']);
|
||||
}
|
||||
else
|
||||
{
|
||||
auto_prune($row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
// Unloading cache and closing db after having done the dirty work.
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('unlock_cron');
|
||||
register_shutdown_function('garbage_collection');
|
||||
}
|
||||
else
|
||||
{
|
||||
unlock_cron();
|
||||
garbage_collection();
|
||||
}
|
||||
unlock_cron();
|
||||
garbage_collection();
|
||||
|
||||
exit;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue