# This patch file was generated by NetBeans IDE
# This patch can be applied using context Tools: Apply Diff Patch action on respective folder.
# It uses platform neutral UTF-8 encoding.
# Above lines and this line are ignored by the patching process.
Index: millennium.admin.inc
--- millennium.admin.inc Base (1.1.2.36)
+++ millennium.admin.inc Locally Modified (Based On 1.1.2.36)
@@ -199,7 +199,7 @@
   }
 
   // Store the new value for sources
-  variable_set('millennium_sources', $sources);
+  millennium_variable_set('millennium_sources', $sources);
 }
 
 /**
@@ -734,15 +734,15 @@
   if ($form_state["submitted"] == true) {
 
     // Store some values for later
-    variable_set('millennium_import_form_source', $form_state["values"]["source"]);
-    variable_set('millennium_import_form_baseurl', $form_state["values"]["millennium_import_form_baseurl"]);
-    variable_set('millennium_import_form_force_update', $form_state["values"]["force_update"]);
-    variable_set('millennium_list_form_checkdigit', $form_state["values"]["ignore_checkdigit"]);
-    variable_set('millennium_range_form_type', $form_state["values"]["type"]);
-    variable_set('millennium_range_form_start', $form_state["values"]["start"]);
-    variable_set('millennium_range_form_end', $form_state["values"]["end"]);
-    variable_set('millennium_import_form_kw', $form_state["values"]["kw"]);
-    variable_set('millennium_import_form_url', $form_state["values"]["url"]);
+    millennium_variable_set('millennium_import_form_source', $form_state["values"]["source"]);
+    millennium_variable_set('millennium_import_form_baseurl', $form_state["values"]["millennium_import_form_baseurl"]);
+    millennium_variable_set('millennium_import_form_force_update', $form_state["values"]["force_update"]);
+    millennium_variable_set('millennium_list_form_checkdigit', $form_state["values"]["ignore_checkdigit"]);
+    millennium_variable_set('millennium_range_form_type', $form_state["values"]["type"]);
+    millennium_variable_set('millennium_range_form_start', $form_state["values"]["start"]);
+    millennium_variable_set('millennium_range_form_end', $form_state["values"]["end"]);
+    millennium_variable_set('millennium_import_form_kw', $form_state["values"]["kw"]);
+    millennium_variable_set('millennium_import_form_url', $form_state["values"]["url"]);
 
     $base_url = millennium_get_real_baseurl($form_state['values']['millennium_import_form_baseurl']);
 
@@ -848,7 +848,7 @@
 
       if ($form_state["values"]["source"] == "query") {
         require_once 'millennium.import.inc';
-        variable_set('millennium_import_form_num_items', $form_state["values"]["num_items"]);
+        millennium_variable_set('millennium_import_form_num_items', $form_state["values"]["num_items"]);
         $records = millennium_query_scrape(
           $form_state["values"]["kw"],
           $base_url,
@@ -861,7 +861,7 @@
       
       if ($form_state["values"]["source"] == "url") {
         require_once 'millennium.import.inc';
-        variable_set('millennium_import_form_num_items', $form_state["values"]["num_items2"]);
+        millennium_variable_set('millennium_import_form_num_items', $form_state["values"]["num_items2"]);
         $records = millennium_result_list_scrape(
           $form_state["values"]["url"],
           $form_state["values"]["num_items2"]
Index: millennium.cron.inc
--- millennium.cron.inc Base (1.1.2.10)
+++ millennium.cron.inc Locally Modified (Based On 1.1.2.10)
@@ -22,7 +22,7 @@
   // Did user indicate crawl should be reset?
   if (variable_get('millennium_webopac_reset', false)) {
     _millennium_crawl_restart();
-    variable_set('millennium_webopac_reset', false);
+    millennium_variable_set('millennium_webopac_reset', false);
   }
 
   $default_start = variable_get('millennium_webopac_start_itemrecord', 10000);
@@ -167,7 +167,7 @@
         $current_rec_num = substr($tmp['item_recnum'], 1) + 0; // Remove the "i" from i100000
         #drupal_set_message("current_rec_num = $current_rec_num");
         if ($current_rec_num > $last_succesful_rec_num) {
-          variable_set('millennium_webopac_latest_successful_itemrecord', $current_rec_num);
+          millennium_variable_set('millennium_webopac_latest_successful_itemrecord', $current_rec_num);
           $last_succesful_rec_num = $current_rec_num;
         }
 
@@ -185,7 +185,7 @@
 
       // Store last tried item
       $last_tried_itemnum = substr(array_pop($recnums_chunk), 1) + 0;
-      variable_set('millennium_webopac_current_itemrecord', $last_tried_itemnum);
+      millennium_variable_set('millennium_webopac_current_itemrecord', $last_tried_itemnum);
     }
 
     // Do rollover when no records were found in this cron run after 5% the estimated database size
@@ -197,7 +197,7 @@
 
     // Adjust ending record if records are being found past that number
     if ($current_rec_num > $default_end) {
-        variable_set('millennium_webopac_end_itemrecord', $current_rec_num);
+        millennium_variable_set('millennium_webopac_end_itemrecord', $current_rec_num);
         $default_end = $current_rec_num;
     }
   }
@@ -218,7 +218,7 @@
 function _millennium_crawl_restart() {
   $default_start = variable_get('millennium_webopac_start_itemrecord', 10000);
   watchdog("Millennium", "Restarting automatic crawl from record @start", array("@start" => $default_start));
-  variable_set('millennium_webopac_latest_successful_itemrecord', $default_start);
-  variable_set('millennium_webopac_current_itemrecord', $default_start);
-  variable_set('millennium_webopac_sequential_failed_imports', 0);
\ No newline at end of file
+  millennium_variable_set('millennium_webopac_latest_successful_itemrecord', $default_start);
+  millennium_variable_set('millennium_webopac_current_itemrecord', $default_start);
+  millennium_variable_set('millennium_webopac_sequential_failed_imports', 0);
\ No newline at end of file
 }
Index: millennium.module
--- millennium.module Base (1.13.2.33.2.2.2.95)
+++ millennium.module Locally Modified (Based On 1.13.2.33.2.2.2.95)
@@ -2729,7 +2729,7 @@
     array_shift($time_history);
   }
   $time_history[] = array("timestamp" => time(), "items" => $tot_attempted, "not_found" => $tot_notfound, "imported" => $tot_imported, "time" => $elapsed_time);
-  variable_set("millennium_time_history", $time_history);
+  millennium_variable_set("millennium_time_history", $time_history);
 }
 
 /**
@@ -2835,3 +2835,32 @@
     'api' => 2,
   );
 }
+
+/**
+ * Lightweight version of millennium_variable_set() that clears cache in hook_exit() call
+ */
+function millennium_variable_set($name, $value) {
+  global $conf;
+
+  db_lock_table('variable');
+  db_query("DELETE FROM {variable} WHERE name = '%s'", $name);
+  db_query("INSERT INTO {variable} (name, value) VALUES ('%s', '%s')", $name, serialize($value));
+  db_unlock_tables();
+
+  $conf[$name] = $value;
+
+  // Set global flag to flush variables cache in millennium_exit()
+  $conf['millennium_variable_set'] = TRUE;
+
+}
+
+/**
+ * Implementation of hook_exit()
+ */
+function millennium_exit($destination = NULL) {
+  global $conf;
+  if ($conf['millennium_variable_set'] == TRUE) {
+    cache_clear_all('variables', 'cache');
+  }
+}
+
