commit 22c94991236e6dff096e29fbb6e74c5a1d20c912
Author: Yawning Angel <[email protected]>
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
 }

_______________________________________________
tor-commits mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits

Reply via email to