Pārlūkot izejas kodu

HPCC-26823 Minor optimization to queue_t::pop()

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday 3 gadi atpakaļ
vecāks
revīzija
c3adb284f9
1 mainītis faili ar 3 papildinājumiem un 3 dzēšanām
  1. 3 3
      roxie/udplib/udpsha.cpp

+ 3 - 3
roxie/udplib/udpsha.cpp

@@ -163,23 +163,23 @@ DataBuffer *queue_t::pop(bool block)
     unsigned signalFreeSlots = 0;
     {
         CriticalBlock b(c_region);
-        if (!count)
+        if (unlikely(!count))
             return nullptr;
         count--;
         ret = head;
-        head = head->msgNext;
+        head = ret->msgNext;
         if (!head)
         {
             assert(!count);
             tail = nullptr;
         }
-        ret->msgNext = nullptr;
         if (count < limit && signal_free_sl)
         {
             signal_free_sl--;
             signalFreeSlots++;
         }
     }
+    ret->msgNext = nullptr;
     if (signalFreeSlots)
         free_sl.signal(signalFreeSlots);
     return ret;