| | |
| | | return data, id |
| | | } |
| | | |
| | | // DestroyShm destroy |
| | | func DestroyShm(data []byte) { |
| | | // DetachShm destroy |
| | | func DetachShm(data []byte) { |
| | | ReleaseBlock(data) |
| | | } |
| | | |
| | |
| | | return shm.Dt(d) |
| | | } |
| | | |
| | | // ReleaseShmID release shmid |
| | | func ReleaseShmID(id int) error { |
| | | // RemoveShmID Remove shmid |
| | | func RemoveShmID(id int) error { |
| | | return shm.Rm(id) |
| | | } |
| | | |
| | | // RemoveShmKey Remove shmkey |
| | | func RemoveShmKey(shmkey int) error { |
| | | _, id, err := AttachBlock(shmkey) |
| | | if err != nil { |
| | | return err |
| | | } else { |
| | | return shm.Rm(id) |
| | | } |
| | | } |
| | | |
| | | // DetachShmKey detach shmkey |
| | | func DetachShmKey(shmkey int) error { |
| | | d, _, err := AttachBlock(shmkey) |
| | | if err != nil { |
| | | return err |
| | | } else { |
| | | return Detach(d) |
| | | } |
| | | } |
| | | |
| | | // DetachAndRemoveShmKey detach and Remove shmkey |
| | | func DetachAndRemoveShmKey(shmkey int) error { |
| | | d, id, err := AttachBlock(shmkey) |
| | | if err != nil { |
| | | return err |
| | | } else { |
| | | Detach(d) |
| | | return shm.Rm(id) |
| | | } |
| | | } |