这是我编写的将请求添加到请求队列的函数:
func (self *RequestQueue) addRequest(request *Request) {
self.requestLock.Lock()
self.queue[request.NormalizedUrl()] = request.ResponseChannel
self.requestLock.Unlock()
}
这是它的测试之一:
func TestAddRequest(t *testing.T) {
before := len(rq.queue)
r := SampleRequests(1)[0]
rq.addRequest(&r)
if (len(rq.queue) - 1) != before {
t.Errorf("Failed to add request to queue")
}
}
当我运行此测试时,应用程序挂起。如果我注释掉这个测试,一切正常。我认为问题在于函数内部的锁定。有什么我做错了吗?谢谢你的帮助!
相关分类