aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/net/textproto/pipeline.go
diff options
context:
space:
mode:
authorGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-22 17:43:43 -0300
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-22 17:43:43 -0300
commita926878ddbd5a98b272c22171ce58663fc04c3e0 (patch)
tree86af256e5d9a9c06263c00adc90e5fe348008c43 /libgo/go/net/textproto/pipeline.go
parent542730f087133690b47e036dfd43eb0db8a650ce (diff)
parent07cbaed8ba7d1b6e4ab3a9f44175502a4e1ecdb1 (diff)
downloadgcc-devel/autopar_devel.zip
gcc-devel/autopar_devel.tar.gz
gcc-devel/autopar_devel.tar.bz2
Merge branch 'autopar_rebase2' into autopar_develdevel/autopar_devel
Quickly commit changes in the rebase branch.
Diffstat (limited to 'libgo/go/net/textproto/pipeline.go')
-rw-r--r--libgo/go/net/textproto/pipeline.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/libgo/go/net/textproto/pipeline.go b/libgo/go/net/textproto/pipeline.go
index 2e28321..1928a30 100644
--- a/libgo/go/net/textproto/pipeline.go
+++ b/libgo/go/net/textproto/pipeline.go
@@ -72,7 +72,7 @@ func (p *Pipeline) EndResponse(id uint) {
type sequencer struct {
mu sync.Mutex
id uint
- wait map[uint]chan uint
+ wait map[uint]chan struct{}
}
// Start waits until it is time for the event numbered id to begin.
@@ -84,9 +84,9 @@ func (s *sequencer) Start(id uint) {
s.mu.Unlock()
return
}
- c := make(chan uint)
+ c := make(chan struct{})
if s.wait == nil {
- s.wait = make(map[uint]chan uint)
+ s.wait = make(map[uint]chan struct{})
}
s.wait[id] = c
s.mu.Unlock()
@@ -99,12 +99,13 @@ func (s *sequencer) Start(id uint) {
func (s *sequencer) End(id uint) {
s.mu.Lock()
if s.id != id {
+ s.mu.Unlock()
panic("out of sync")
}
id++
s.id = id
if s.wait == nil {
- s.wait = make(map[uint]chan uint)
+ s.wait = make(map[uint]chan struct{})
}
c, ok := s.wait[id]
if ok {
@@ -112,6 +113,6 @@ func (s *sequencer) End(id uint) {
}
s.mu.Unlock()
if ok {
- c <- 1
+ close(c)
}
}