From 6b2fd0e872389ffcd6c1da20b778a76f37fd31ec Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期三, 25 三月 2020 15:21:31 +0800
Subject: [PATCH] add delete shm by shmkey method

---
 shmwrap.go |   39 +++++++++++++++++++++++++++++++++++----
 1 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/shmwrap.go b/shmwrap.go
index 87ea7a4..12dba41 100644
--- a/shmwrap.go
+++ b/shmwrap.go
@@ -120,8 +120,8 @@
     return data, id
 }
 
-// DestroyShm destroy
-func DestroyShm(data []byte) {
+// DetachShm destroy
+func DetachShm(data []byte) {
     ReleaseBlock(data)
 }
 
@@ -135,7 +135,38 @@
    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)
+    }
+}

--
Gitblit v1.8.0