wangzhengquan
2020-07-13 e1e97f1f98baf82efcd5825d7c7a7b4b1b2f2e40
queue/include/shm_queue.h
@@ -15,19 +15,6 @@
{
private:
    static hashtable_t * getHashTable() {
        static hashtable_t *hashtable = NULL;
        if(hashtable == NULL) {
            int first = mm_init(sizeof(hashtable_t), (void **)&hashtable);
            if (first)
               hashtable_init(hashtable);
        }
        return hashtable;
    }
private:
    const int KEY;
 
public:
@@ -67,7 +54,7 @@
SHMQueue<ELEM_T>::SHMQueue(int key, size_t qsize): KEY(key)
{
    hashtable_t *hashtable = getHashTable();
    hashtable_t *hashtable = get_mm_hashtable();
    //LockFreeQueue<int, 10000> q;
    if ((queue = (LockFreeQueue<ELEM_T> *)hashtable_get(hashtable, key)) == NULL ) {
        queue = new LockFreeQueue<ELEM_T>(qsize);
@@ -84,7 +71,7 @@
    LoggerFactory::getLogger().debug("SHMQueue destructor  reference===%d", queue->reference.load());
    if(queue->reference.load() == 0) {
        delete queue;
        hashtable_t *hashtable = getHashTable();
        hashtable_t *hashtable = get_mm_hashtable();
        hashtable_remove(hashtable, KEY);
        LoggerFactory::getLogger().debug("SHMQueue destructor delete queue");
    }