测试包含锁的函数时,Go 应用程序挂起

这是我编写的将请求添加到请求队列的函数:


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")

    }

}

当我运行此测试时,应用程序挂起。如果我注释掉这个测试,一切正常。我认为问题在于函数内部的锁定。有什么我做错了吗?谢谢你的帮助!


慕工程0101907
浏览 187回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go