| | |
| | | int rv; |
| | | |
| | | if( (rv = svsem_wait(hashtable->mutex)) != 0) { |
| | | LoggerFactory::getLogger()->error(rv, "hashtable_remove\n"); |
| | | LoggerFactory::getLogger()->error(errno, "hashtable_remove\n"); |
| | | } |
| | | tailq_header_t *my_tailq_head = hashtable->array[code] ; |
| | | if ( my_tailq_head == NULL) |
| | | { |
| | | if((rv = svsem_post(hashtable->mutex)) != 0) { |
| | | LoggerFactory::getLogger()->error(rv, "hashtable_remove\n"); |
| | | LoggerFactory::getLogger()->error(errno, "hashtable_remove\n"); |
| | | } |
| | | return NULL; |
| | | } else { |
| | |
| | | } |
| | | |
| | | if((rv = svsem_post(hashtable->mutex)) != 0) { |
| | | LoggerFactory::getLogger()->error(rv, "hashtable_remove\n"); |
| | | LoggerFactory::getLogger()->error(errno, "hashtable_remove\n"); |
| | | } |
| | | |
| | | return NULL; |
| | |
| | | |
| | | int rv; |
| | | if(( rv = svsem_wait(hashtable->mutex)) != 0) { |
| | | LoggerFactory::getLogger()->error(rv, "hashtable_put\n"); |
| | | LoggerFactory::getLogger()->error(errno, "hashtable_put\n"); |
| | | } |
| | | |
| | | _hashtable_put(hashtable, key, value); |
| | | |
| | | if(( rv = svsem_post(hashtable->mutex)) != 0) { |
| | | LoggerFactory::getLogger()->error(rv, "hashtable_put\n"); |
| | | LoggerFactory::getLogger()->error(errno, "hashtable_put\n"); |
| | | } |
| | | } |
| | | |
| | |
| | | int key = START_KEY; |
| | | rv = svsem_wait(hashtable->mutex); |
| | | if(rv != 0) { |
| | | LoggerFactory::getLogger()->error(rv, "hashtable_alloc_key\n"); |
| | | LoggerFactory::getLogger()->error(errno, "hashtable_alloc_key\n"); |
| | | } |
| | | |
| | | while(_hashtable_get(hashtable, key) != NULL) { |
| | |
| | | |
| | | rv = svsem_post(hashtable->mutex); |
| | | if(rv != 0) { |
| | | LoggerFactory::getLogger()->error(rv, "hashtable_alloc_key\n"); |
| | | LoggerFactory::getLogger()->error(errno, "hashtable_alloc_key\n"); |
| | | } |
| | | return key; |
| | | } |
| | |
| | | tailq_entry_t *item; |
| | | int rv; |
| | | if( (rv = svsem_wait(hashtable->mutex)) != 0) { |
| | | LoggerFactory::getLogger()->error(rv, "hashtable_removeall\n"); |
| | | LoggerFactory::getLogger()->error(errno, "hashtable_removeall\n"); |
| | | } |
| | | for (int i = 0; i < MAPSIZE; i++) |
| | | { |
| | |
| | | } |
| | | |
| | | if((rv = svsem_post(hashtable->mutex)) != 0) { |
| | | LoggerFactory::getLogger()->error(rv, "hashtable_removeall\n"); |
| | | LoggerFactory::getLogger()->error(errno, "hashtable_removeall\n"); |
| | | } |
| | | } |
| | | |