fixed race conditions

Signed-off-by: Aleksandr Dubovikov <d.lexand@gmail.com>
This commit is contained in:
Aleksandr Dubovikov 2024-10-09 20:59:59 +02:00
parent 7fff56c758
commit f58da42718
3 changed files with 15 additions and 8 deletions

View file

@ -190,6 +190,7 @@ func Test_ActiveRequestWaiting(t *testing.T) {
}
successResults := 0
successResultsLock := &sync.Mutex{}
for i := 0; i < 3; i++ {
go func() {
@ -197,6 +198,8 @@ func Test_ActiveRequestWaiting(t *testing.T) {
if res.Code != 200 {
t.Errorf("Unsuccess result: %v", res)
}
successResultsLock.Lock()
defer successResultsLock.Unlock()
successResults++
return
}
@ -205,9 +208,11 @@ func Test_ActiveRequestWaiting(t *testing.T) {
}
time.Sleep(time.Duration(1) * time.Second)
successResultsLock.Lock()
if successResults != 0 {
t.Error("Subroutines didn't wait")
}
successResultsLock.Unlock()
activeRequests.Url["someurl"].Cond.Broadcast()
to := time.After(1 * time.Second)
for {
@ -217,9 +222,11 @@ func Test_ActiveRequestWaiting(t *testing.T) {
return
default:
}
successResultsLock.Lock()
if successResults == 3 {
break
}
successResultsLock.Unlock()
}
}