From d4c6a6059e830fd1de26a92adf3025fb3a32f6bc Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期一, 30 三月 2020 13:56:10 +0800
Subject: [PATCH] 添加注释

---
 shmwrap.go |   34 ++++++++++++++++++++++++++--------
 1 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/shmwrap.go b/shmwrap.go
index 06ee17a..2f48b70 100644
--- a/shmwrap.go
+++ b/shmwrap.go
@@ -10,13 +10,14 @@
 // NewBlock shm block with size
 func NewBlock(size int, key int) ([]byte, int, error) {
     id, err := shm.Get(key, size, shm.IPC_CREAT|0666)
-    fmt.Println("Get:", id, err)
     if err != nil || id == -1 {
+        fmt.Printf("NewBlock Get:%x, %v\n", key, err)
         return nil, -1, err
     }
 
     data, err2 := shm.At(id, 0, 0)
     if err2 != nil {
+        fmt.Printf("NewBlock At:%x, %v\n", key, err2)
         return nil, -1, err2
     }
 
@@ -26,13 +27,14 @@
 // AttachBlock attach exist shm
 func AttachBlock(key int) ([]byte, int, error) {
     id, err := shm.Get(key, 0, 0)
-    fmt.Println("Get:", id, err)
     if err != nil || id == -1 { //no exist
+        fmt.Printf("AttachBlock Get:%x, %v\n", key, err)
         return nil, -1, err
     }
 
     data, err2 := shm.At(id, 0, 0)
     if err2 != nil {
+        fmt.Printf("AttachBlock Get:%x, %v\n", key, err2)
         return nil, -1, err2
     }
 
@@ -50,7 +52,6 @@
 // context for quit
 func CreateRawShm(ctx context.Context, size int, key int) ([]byte, int) {
     data, id, err := AttachBlock(key)
-    fmt.Println("err:", err)
     if err != nil {
     loopB:
         for {
@@ -60,8 +61,6 @@
             default:
                 if err == nil {
                     break loopB
-                } else {
-                    fmt.Println("createShm error:", err)
                 }
                 time.Sleep(time.Millisecond)
                 data, id, err = NewBlock(size, key)
@@ -83,8 +82,6 @@
             default:
                 if err == nil {
                     break loopB
-                } else {
-                    fmt.Println("createShm error:", err)
                 }
                 time.Sleep(time.Millisecond)
                 data, id, err = AttachBlock(key)
@@ -140,7 +137,7 @@
    return shm.Rm(id)
 }
 
-// RemoveShmID Remove shmid
+// RemoveShmKey Remove shmkey
 func RemoveShmKey(shmkey int) error {
     _, id, err := AttachBlock(shmkey)
     if err != nil {
@@ -149,3 +146,24 @@
         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