Source File
threshold.go
Belonging Package
github.com/libp2p/go-libp2p/p2p/net/upgrader
package upgraderimport ()func newThreshold( int) *threshold {:= &threshold{threshold: ,}.cond.L = &.mureturn}type threshold struct {mu sync.Mutexcond sync.Condcount intthreshold int}// Acquire increments the counter. It will not block.func ( *threshold) () {.mu.Lock().count++.mu.Unlock()}// Release decrements the counter.func ( *threshold) () {.mu.Lock()if .count == 0 {panic("negative count")}if .threshold == .count {.cond.Broadcast()}.count--.mu.Unlock()}// Wait waits for the counter to drop below the thresholdfunc ( *threshold) () {.mu.Lock()for .count >= .threshold {.cond.Wait()}.mu.Unlock()}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |