SL-16094: Fix merge glitches from previous revert.
parent
d71e0a6d47
commit
877a02dba1
|
|
@ -85,8 +85,8 @@ public:
|
|||
LLThreadSafeQueue(U32 capacity = 1024);
|
||||
virtual ~LLThreadSafeQueue() {}
|
||||
|
||||
// Add an element to the queue (will block if the queue has
|
||||
// reached capacity).
|
||||
// Add an element to the queue (will block if the queue has reached
|
||||
// capacity).
|
||||
//
|
||||
// This call will raise an interrupt error if the queue is closed while
|
||||
// the caller is blocked.
|
||||
|
|
@ -95,6 +95,11 @@ public:
|
|||
// legacy name
|
||||
void pushFront(ElementT const & element) { return push(element); }
|
||||
|
||||
// Add an element to the queue (will block if the queue has reached
|
||||
// capacity). Return false if the queue is closed before push is possible.
|
||||
template <typename T>
|
||||
bool pushIfOpen(T&& element);
|
||||
|
||||
// Try to add an element to the queue without blocking. Returns
|
||||
// true only if the element was actually added.
|
||||
template <typename T>
|
||||
|
|
@ -314,8 +319,8 @@ bool LLThreadSafeQueue<ElementT, QueueT>::push_(lock_t& lock, T&& element)
|
|||
|
||||
|
||||
template <typename ElementT, typename QueueT>
|
||||
template<typename T>
|
||||
void LLThreadSafeQueue<ElementT, QueueT>::push(T&& element)
|
||||
template <typename T>
|
||||
bool LLThreadSafeQueue<ElementT, QueueT>::pushIfOpen(T&& element)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
lock_t lock1(mLock);
|
||||
|
|
@ -325,12 +330,10 @@ void LLThreadSafeQueue<ElementT, QueueT>::push(T&& element)
|
|||
// drained or not: the moment either end calls close(), further push()
|
||||
// operations will fail.
|
||||
if (mClosed)
|
||||
{
|
||||
LLTHROW(LLThreadSafeQueueInterrupt());
|
||||
}
|
||||
return false;
|
||||
|
||||
if (push_(lock1, std::forward<T>(element)))
|
||||
return;
|
||||
return true;
|
||||
|
||||
// Storage Full. Wait for signal.
|
||||
mCapacityCond.wait(lock1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue