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