浏览代码

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

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday 3 年之前
父节点
当前提交
c3adb284f9
共有 1 个文件被更改,包括 3 次插入3 次删除
  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;