From 07b76017e8d7a11f588163a1097e2131d7c9ee45 Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期二, 31 三月 2020 14:21:34 +0800
Subject: [PATCH] 添加查询连接个数和强制删除共享内存的接口

---
 shmwrap.go |   24 ++++++++++++++++++++++++
 README.md  |    6 +++++-
 2 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/README.md b/README.md
index a04ce6b..7b72b99 100644
--- a/README.md
+++ b/README.md
@@ -2,4 +2,8 @@
 
 system v shm lock-free queue
 
-澶氳澶氬啓锛屽鍗忕▼锛屽shmkey鍧囨祴璇曢�氳繃
\ No newline at end of file
+shmwrap.go systemV 鍏变韩鍐呭瓨搴撶殑灏佽
+shmqueue.go 鍏变韩鍐呭瓨鏃犻攣闃熷垪搴�,澶氳澶氬啓锛屽鍗忕▼锛屽shmkey鍧囨祴璇曢�氳繃
+shmData.go  鍏变韩鍐呭瓨[]byte鐨勫簱, shmid瀵瑰簲鐨勫叡浜唴瀛樺彧attach,涓峜reate
+
+
diff --git a/shmwrap.go b/shmwrap.go
index 2f48b70..7975d61 100644
--- a/shmwrap.go
+++ b/shmwrap.go
@@ -167,3 +167,27 @@
         return shm.Rm(id)
     }
 }
+
+func ShmAttachNum(shmId int) (int,error) {
+    var idDs shm.IdDs
+
+    _, err := shm.Ctl(shmId, shm.IPC_STAT, &idDs)
+    if err != nil {
+        return 0, err
+    }
+
+    return int(idDs.Nattch), nil
+}
+
+func ForceRemoveShm(data []byte, shmId int) error {
+    count, err := ShmAttachNum(shmId)
+    if err != nil{
+        return err
+    }else{
+        for i:=0; i < count; i++{
+            Detach(data)
+        }
+    }
+    RemoveShmID(shmId)
+    return nil
+}

--
Gitblit v1.8.0