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