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