diff options
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/wtf/MessageQueue.h')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/wtf/MessageQueue.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/MessageQueue.h b/src/3rdparty/webkit/JavaScriptCore/wtf/MessageQueue.h index 9549f37..7721dba 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/MessageQueue.h +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/MessageQueue.h @@ -47,9 +47,10 @@ namespace WTF { template<typename DataType> class MessageQueue : Noncopyable { public: - MessageQueue() : m_killed(false) {} + MessageQueue() : m_killed(false) { } void append(const DataType&); + bool appendAndCheckEmpty(const DataType&); void prepend(const DataType&); bool waitForMessage(DataType&); template<typename Predicate> @@ -81,6 +82,17 @@ namespace WTF { m_condition.signal(); } + // Returns true if the queue was empty before the item was added. + template<typename DataType> + inline bool MessageQueue<DataType>::appendAndCheckEmpty(const DataType& message) + { + MutexLocker lock(m_mutex); + bool wasEmpty = m_queue.isEmpty(); + m_queue.append(message); + m_condition.signal(); + return wasEmpty; + } + template<typename DataType> inline void MessageQueue<DataType>::prepend(const DataType& message) { |