From b45e986f51e4545a9f42e6f387829a75d589c69a Mon Sep 17 00:00:00 2001 From: chenshijun <chenshijun@aiotlink.com> Date: 星期三, 15 四月 2020 15:54:45 +0800 Subject: [PATCH] shmqueue的get和put,增加超次数退出 --- shmqueue.go | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/shmqueue.go b/shmqueue.go index 2cc6908..83ab92e 100644 --- a/shmqueue.go +++ b/shmqueue.go @@ -210,6 +210,8 @@ cache = &(eqi.EsCaches[putPosNew&capMod]) + tryMax := 100 + tryCount := 0 for { getNo := atomic.LoadUint32(&cache.getNo) putNo := atomic.LoadUint32(&cache.putNo) @@ -219,6 +221,11 @@ return true, int(posCnt + 1) } else { runtime.Gosched() + } + tryCount++ + if tryCount >= tryMax { + fmt.Println("Put tryCount:", tryCount) + return false, int(posCnt) } } } @@ -302,6 +309,8 @@ cache = &(eqi.EsCaches[getPosNew&capMod]) + tryMax := 100 + tryCount := 0 for { getNo := atomic.LoadUint32(&cache.getNo) putNo := atomic.LoadUint32(&cache.putNo) @@ -313,6 +322,11 @@ } else { runtime.Gosched() } + tryCount++ + if tryCount >= tryMax { + fmt.Println("Get tryCount:", tryCount) + return ElemInfo{}, false, int(posCnt) + } } } -- Gitblit v1.8.0