[tor-commits] [sandboxed-tor-browser/master] Bug #20804: Temporarily kludge around the async/UI issue.
yawning at torproject.org
yawning at torproject.org
Mon Nov 28 02:59:17 UTC 2016
commit 22c94991236e6dff096e29fbb6e74c5a1d20c912
Author: Yawning Angel <yawning at schwanenlied.me>
Date: Mon Nov 28 02:56:54 2016 +0000
Bug #20804: Temporarily kludge around the async/UI issue.
The ui code's async stuff (and all the code that uses it) is kind of a
kludgy mess, and is race codnition prone particularly when handling
cancelation.
Work around the issue for now, till I have time to fix it properly by
increasing channel capacity a tad.
---
src/cmd/sandboxed-tor-browser/internal/ui/async/async.go | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/cmd/sandboxed-tor-browser/internal/ui/async/async.go b/src/cmd/sandboxed-tor-browser/internal/ui/async/async.go
index 83bbcae..5a894d2 100644
--- a/src/cmd/sandboxed-tor-browser/internal/ui/async/async.go
+++ b/src/cmd/sandboxed-tor-browser/internal/ui/async/async.go
@@ -98,9 +98,13 @@ func (async *Async) Grab(client *grab.Client, url string, hzFn func(string)) []b
// NewAsync creates a new Async structure.
func NewAsync() *Async {
+ // XXX; Temporarily work around bug #20804, by oversizing
+ // the channels a bit. Things end up getting stuck on channel
+ // writes because it's kludged together, this should ensure that
+ // the writes succeed.
async := new(Async)
- async.Cancel = make(chan interface{})
- async.Done = make(chan interface{})
+ async.Cancel = make(chan interface{}, 2)
+ async.Done = make(chan interface{}, 2)
async.ToUI = make(chan interface{})
return async
}
More information about the tor-commits
mailing list