Просмотр исходного кода

Common: Remove unused fifo_queue.h.

Emmanuel Gil Peyrot 11 лет назад
Родитель
Сommit
0aade9ad63
2 измененных файлов с 0 добавлено и 112 удалено
  1. 0 1
      src/common/CMakeLists.txt
  2. 0 111
      src/common/fifo_queue.h

+ 0 - 1
src/common/CMakeLists.txt

@@ -31,7 +31,6 @@ set(HEADERS
             cpu_detect.h
             debug_interface.h
             emu_window.h
-            fifo_queue.h
             file_util.h
             key_map.h
             linear_disk_cache.h

+ 0 - 111
src/common/fifo_queue.h

@@ -1,111 +0,0 @@
-#pragma once
-
-// a simple lockless thread-safe,
-// single reader, single writer queue
-
-#include "common/atomic.h"
-
-namespace Common
-{
-
-template <typename T>
-class FifoQueue
-{
-public:
-    FifoQueue() : m_size(0)
-    {
-         m_write_ptr = m_read_ptr = new ElementPtr();
-    }
-
-    ~FifoQueue()
-    {
-        // this will empty out the whole queue
-        delete m_read_ptr;
-    }
-
-    u32 Size() const
-    {
-        return m_size;
-    }
-
-    bool Empty() const
-    {
-        //return (m_read_ptr == m_write_ptr);
-        return (0 == m_size);
-    }
-
-    T& Front() const
-    {
-        return *m_read_ptr->current;
-    }
-
-    template <typename Arg>
-    void Push(Arg&& t)
-    {
-        // create the element, add it to the queue
-        m_write_ptr->current = new T(std::forward<Arg>(t));
-        // set the next pointer to a new element ptr
-        // then advance the write pointer
-        m_write_ptr = m_write_ptr->next = new ElementPtr();
-        Common::AtomicIncrement(m_size);
-    }
-
-    void Pop()
-    {
-        Common::AtomicDecrement(m_size);
-        ElementPtr *const tmpptr = m_read_ptr;
-        // advance the read pointer
-        m_read_ptr = m_read_ptr->next;
-        // set the next element to NULL to stop the recursive deletion
-        tmpptr->next = nullptr;
-        delete tmpptr;    // this also deletes the element
-    }
-
-    bool Pop(T& t)
-    {
-        if (Empty())
-            return false;
-
-        t = std::move(Front());
-        Pop();
-
-        return true;
-    }
-
-    // not thread-safe
-    void Clear()
-    {
-        m_size = 0;
-        delete m_read_ptr;
-        m_write_ptr = m_read_ptr = new ElementPtr();
-    }
-
-private:
-    // stores a pointer to element
-    // and a pointer to the next ElementPtr
-    class ElementPtr
-    {
-    public:
-        ElementPtr() : current(nullptr), next(nullptr) {}
-
-        ~ElementPtr()
-        {
-            if (current)
-            {
-                delete current;
-                // recusion ftw
-                if (next)
-                    delete next;
-            }
-        }
-
-        T *volatile current;
-        ElementPtr *volatile next;
-    };
-
-    ElementPtr *volatile m_write_ptr;
-    ElementPtr *volatile m_read_ptr;
-    volatile u32 m_size;
-};
-
-}