? boost-578546.patch
Index: boost.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/boost/boost.admin.inc,v
retrieving revision 1.1.2.1.2.3.2.69
diff -u -p -r1.1.2.1.2.3.2.69 boost.admin.inc
--- boost.admin.inc	6 Sep 2009 23:00:48 -0000	1.1.2.1.2.3.2.69
+++ boost.admin.inc	18 Sep 2009 12:56:28 -0000
@@ -586,6 +586,13 @@ function boost_admin_boost_performance_p
       '#submit' => array('boost_stop_crawler_submit'),
     );
   }
+  else {
+    $form['crawler']['boost_reset_crawler'] = array(
+      '#type' => 'submit',
+      '#value' => t('Reset Crawler & Cron Semaphore'),
+      '#submit' => array('boost_reset_crawler_submit'),
+    );
+  }
 
   // Apache .htaccess settings generation
   $htaccess = boost_admin_generate_htaccess(variable_get('boost_server_name_http_host', '%{SERVER_NAME}'), variable_get('boost_document_root', '%{DOCUMENT_ROOT}'));
@@ -917,6 +924,17 @@ function boost_reset_database_submit () 
 function boost_stop_crawler_submit() {
   variable_set('boost_crawler_stopped', TRUE);
   variable_set('boost_crawler_number_of_threads', 0);
+  drupal_set_message(t('Boost: Stop crawler signal given; all crawler threads should be stopped in less then %time', array('%time' => format_interval(BOOST_MAX_THREAD_TIME))));
+}
+
+/**
+ * Reset Crawler
+ */
+function boost_reset_crawler_submit() {
+  db_query("DELETE FROM {variable} WHERE name LIKE '%s%%'", 'boost_crawl');
+  db_query("DELETE FROM {variable} WHERE name = 'cron_semaphore'");
+  cache_clear_all('variables', 'cache');
+  drupal_set_message(t('Boost: Crawler variables reset & cron semaphore cleared'));
 }
 
 /**
