[wp-trac] [WordPress Trac] #19487: Remove useless calls to set_time_limit()

WordPress Trac wp-trac at lists.automattic.com
Fri Dec 9 14:53:08 UTC 2011


#19487: Remove useless calls to set_time_limit()
--------------------------+-----------------------------
 Reporter:  dllh          |      Owner:  westi
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  General       |    Version:  3.3
 Severity:  normal        |   Keywords:  has-patch
--------------------------+-----------------------------
 Calls to set_time_limit() were introduced in
 http://core.trac.wordpress.org/changeset/1812 and have remained in core
 ever since. The call occurs in code that makes network connections and is
 designed to allow time for the network calls to complete before the script
 execution stops.

 But set_time_limit() won't take network time into account, so it actually
 will not do what it seems designed to do. From php docs:

   The set_time_limit() function and the configuration directive
 max_execution_time only affect the execution time of the script itself.
 Any time spent on activity that happens outside the execution of the
 script such as system calls using system(), stream operations, database
 queries, etc. is not included when determining the maximum time that the
 script has been running.

 Further, calls to set_time_limit() can cause unexpected results in code
 that relies on any functions that call set_time_limit(). For example, if
 some code (in a cron job, say) sets the time limit to 0 (unlimited)
 because it knows it needs some time complete, then a subsequent call to a
 function that resets the time limit will halt the long-running execution
 once the new limit has been reached. Also from php docs:

   When called, set_time_limit() restarts the timeout counter from zero. In
 other words, if the timeout is the default 30 seconds, and 25 seconds 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.

 Since the call to set_time_limit() does not here do anything useful, it
 should be removed.

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/19487>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list