Author: spadkins
Date: Mon Jun  5 16:18:12 2006
New Revision: 6473

Modified:
   p5ee/trunk/App-WorkQueue/lib/App/WorkQueue.pm
   p5ee/trunk/App-WorkQueue/lib/App/WorkQueue/Repository.pm

Log:
fixed bug in _refill_buffer() logic which was in _push_in_mem()

Modified: p5ee/trunk/App-WorkQueue/lib/App/WorkQueue.pm
==============================================================================
--- p5ee/trunk/App-WorkQueue/lib/App/WorkQueue.pm       (original)
+++ p5ee/trunk/App-WorkQueue/lib/App/WorkQueue.pm       Mon Jun  5 16:18:12 2006
@@ -292,7 +292,7 @@
                         $removed = 1;
                     }
                 }
-                else {
+                else { # this block, we are certain we are not comparing to 
ourselves
                     if ($removed && !$inserted && 
$self->_compare_entries($entry, $ent) > -1) {
                         
$self->update($entry,[$self->{status_attrib}],[$self->{STATUS_UNACQUIRED}]);
                         splice(@$entries, $i+1, 0, $entry);
@@ -303,8 +303,14 @@
             }
         }
         else {
+            my ($cmp);
             for (my $i = $#$entries; $i >= 0; $i--) {
-                if ($self->_compare_entries($entry, $entries->[$i]) > -1) {
+                $cmp = $self->_compare_entries($entry, $entries->[$i]);
+                if ($cmp == 0) {  # it's identical. don't add it again.
+                    $inserted = 1;
+                    last;
+                }
+                elsif ($cmp == 1) { # it's lower priority (and different)
                     
$self->update($entry,[$self->{status_attrib}],[$self->{STATUS_UNACQUIRED}]);
                     splice(@$entries, $i+1, 0, $entry);
                     $inserted = 1;
@@ -466,7 +472,8 @@
                     }
                     else {
                         $self->_release_resources($entry);
-                        $self->_maintain_queue_buffers("release",$entry);
+                        # the following line appears to have been a bug.
+                        #$self->_maintain_queue_buffers("release",$entry);
                     }
                 }
             }
@@ -484,7 +491,8 @@
                     }
                     else {
                         $self->_release_resources($entry);
-                        $self->_maintain_queue_buffers("release",$entry);
+                        # the following line appears to have been a bug
+                        #$self->_maintain_queue_buffers("release",$entry);
                     }
                 }
             }

Modified: p5ee/trunk/App-WorkQueue/lib/App/WorkQueue/Repository.pm
==============================================================================
--- p5ee/trunk/App-WorkQueue/lib/App/WorkQueue/Repository.pm    (original)
+++ p5ee/trunk/App-WorkQueue/lib/App/WorkQueue/Repository.pm    Mon Jun  5 
16:18:12 2006
@@ -607,10 +607,10 @@
     $fh = \*STDOUT if (!$fh);
     print $fh "ENTRIES IN MEM:\n";
     $self->_print_entries_in_mem($fh);
-    if (!$no_db) {
-        print $fh "ENTRIES IN DB:\n";
-        $self->_print_entries_in_db($fh);
-    }
+    #if (!$no_db) {
+    #    print $fh "ENTRIES IN DB:\n";
+    #    $self->_print_entries_in_db($fh);
+    #}
     print $fh "CONSTRAINTS:\n";
     $self->print_constraints($fh);
     print $fh "STATUS COUNTS:\n";

Reply via email to