diff --git a/core/includes/common.inc b/core/includes/common.inc index 422c79fd7178db6aead13eab8a37987ba1b5eb18..80cfade9a2d9ec51e161e30960e6cb8540522090 100644 --- a/core/includes/common.inc +++ b/core/includes/common.inc @@ -1199,11 +1199,11 @@ function l($text, $path, array $options = array()) { * into script execution a call such as set_time_limit(20) is made, the * script will run for a total of 45 seconds before timing out. * - * It also means that it is possible to decrease the total time limit if - * the sum of the new time limit and the current time spent running the - * script is inferior to the original time limit. It is inherent to the way - * set_time_limit() works, it should rather be called with an appropriate - * value every time you need to allocate a certain amount of time + * If the current time limit is not unlimited it is possible to decrease the + * total time limit if the sum of the new time limit and the current time spent + * running the script is inferior to the original time limit. It is inherent to + * the way set_time_limit() works, it should rather be called with an + * appropriate value every time you need to allocate a certain amount of time * to execute a task than only once at the beginning of the script. * * Before calling set_time_limit(), we check if this function is available @@ -1220,7 +1220,11 @@ function l($text, $path, array $options = array()) { */ function drupal_set_time_limit($time_limit) { if (function_exists('set_time_limit')) { - @set_time_limit($time_limit); + $current = ini_get('max_execution_time'); + // Do not set time limit if it is currently unlimited. + if ($current !== 0) { + @set_time_limit($time_limit); + } } }