? boost-621148.patch
Index: boost.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/boost/boost.module,v
retrieving revision 1.3.2.2.2.5.2.222
diff -u -p -r1.3.2.2.2.5.2.222 boost.module
--- boost.module	2 Nov 2009 18:45:07 -0000	1.3.2.2.2.5.2.222
+++ boost.module	2 Nov 2009 19:05:25 -0000
@@ -3063,6 +3063,12 @@ function _boost_mkdir_p($pathname, $recu
   return $result;
 }
 
+function _boost_microtime_float()
+{
+    list($usec, $sec) = explode(" ", microtime());
+    return ((float)$usec + (float)$sec);
+}
+
 /**
  * Recursive version of rmdir(); use with extreme caution.
  *
@@ -3075,18 +3081,29 @@ function _boost_mkdir_p($pathname, $recu
  * @param $nuke
  *   clear it all, everything, ignore multisite restrictions
  */
-function _boost_rmdir_rf($dirname, $flush = TRUE, $first = TRUE, $nuke = FALSE) {
+function _boost_rmdir_rf($dirname, $flush = TRUE, $first = TRUE, $nuke = FALSE, &$timer = NULL) {
   if (empty($dirname)) {
     return FALSE;
   }
   $empty = TRUE; // Start with an optimistic mindset
 
+  if (is_null($timer)) {
+    $timer = _boost_microtime_float();
+  }
+  $now = _boost_microtime_float();
+  $total_time = $now - $timer;
+  if ($total_time > 59) {
+    $total_time = $now;
+    //Ping Database to keep connection alive
+    db_query("SHOW PROCESSLIST");
+  }
+
   if ($first || (!$first && ($nuke || !file_exists($dirname . '/' . BOOST_ROOT_FILE)))) {
     $files = glob($dirname . '/*', GLOB_NOSORT);
     if ($files) {
       foreach ($files as $file) {
         if (is_dir($file)) {
-          if (!_boost_rmdir_rf($file, $flush, FALSE, $nuke)) {
+          if (!_boost_rmdir_rf($file, $flush, FALSE, $nuke, $timer)) {
             $empty = FALSE;
           }
         }
