| | |
| | | *} |
| | | */ |
| | | |
| | | SemUtil::dec(mutex); |
| | | SemUtil::dec_uni(mutex); |
| | | size_t size = GET_SIZE(HDRP(ptr)); |
| | | PUT(HDRP(ptr), PACK(size, 0)); |
| | | PUT(FTRP(ptr), PACK(size, 0)); |
| | |
| | | { |
| | | |
| | | //同一进程内已经初始化过了 |
| | | SemUtil::dec(mutex); |
| | | SemUtil::dec_uni(mutex); |
| | | if (shmid != -1){ |
| | | hashtable = (hashtable_t *)shmp; |
| | | SemUtil::inc(mutex); |
| | |
| | | bool mm_destroy(void) { |
| | | struct shmid_ds shmid_ds; |
| | | |
| | | SemUtil::dec(mutex); |
| | | SemUtil::dec_uni(mutex); |
| | | |
| | | if(shmctl(shmid, IPC_STAT, &shmid_ds) == 0) { |
| | | //LoggerFactory::getLogger()->debug("shm_nattch=%d\n", shmid_ds.shm_nattch); |
| | |
| | | //remove shared memery |
| | | if (shmctl(shmid, IPC_RMID, 0) == -1) |
| | | err_exit(errno, "mm_destroy shmctl IPC_RMID"); |
| | | else |
| | | LoggerFactory::getLogger()->debug("shared memory destroy\n"); |
| | | |
| | | SemUtil::inc(mutex); |
| | | SemUtil::remove(mutex); |