f544fc68de
enter frame accumulation even after dropping one This logically makes more sense, i.e. we keep draining frames from fwd.ch until we run out.
Matthias Radestock2015-03-27 11:35:42 +00:00
83724a08c9
refactor: get rid of Forwarder.stop channel signal termination by sending nil to the main channel instead
Matthias Radestock2015-03-27 11:32:50 +00:00
1a39cb163a
keep accumulating frames even when dropping some This logically makes more sense, i.e. we keep draining frames from fwd.ch until we run out.
Matthias Radestock2015-03-27 11:05:50 +00:00
1c5fee0a5e
refactor: simplify Forwarder.run by extracing a helper function Also, don't check for failed receive on fwd.ch; it cannot happen and we weren't doing it everywhere anyway.
Matthias Radestock2015-03-27 10:59:23 +00:00
45740b1419
refactor: replace buf.WriteString(fmt.S*(...)) with fmt.F*(&buf,...) shorter and more efficient
Matthias Radestock2015-03-26 14:20:28 +00:00
0e54ca8c2b
Merge pull request #490 from errordeveloper/master
rade2015-03-26 13:57:32 +00:00
31efd76797
eliminate potential deadlock/dealy in connection.Shutdown Treat the no-error case the same as the error case... - use the standard sendAction to communicate with the actor, which ensures that we don't block when the actor has terminated - run in a goroutine to prevent delaying the caller when the actor's channel is backed up.
Matthias Radestock2015-03-26 13:25:23 +00:00
dbe39659c5
Merge pull request #489 from awh/gofmt
rade2015-03-26 12:46:15 +00:00
96efc16432
Add missing aufs-tools to get rid of dubious log message -
Ilya Dmitrichenko2015-03-16 16:37:07 +00:00
ee6325d488
get rid of Interaction it's no longer needed in the closure-based actor method scheme
Matthias Radestock2015-03-25 05:07:15 +00:00
0e43a30858
convert MDNSClient actor to use closures for methods We use a 'nil' closure to indicate shutdown.
Matthias Radestock2015-03-25 05:05:18 +00:00
a06797dd95
convert ConnectionMaker actor to use closures for methods
Matthias Radestock2015-03-25 00:10:42 +00:00
48c73598c4
convert the connection actor to use closures The only slight trickiness is Shutdown. Generally connections shut down when an error is encountered, but we also need to be able to shut down connections w/o an error. Rather than making all the actor methods return a (terminated bool, error) tuple, we signal the non-error shutdown by sending nil as the action (instead of a closure).
Matthias Radestock2015-03-24 18:53:51 +00:00
70a824ea07
Merge pull request #477 from awh/fix_how_it_works_doc
rade2015-03-24 11:36:18 +00:00
d7959d8ca5
Add outbound and established flags to connection structure diagram
Adam Harrison2015-03-24 11:33:24 +00:00
aa1dd47bd2
accumulate gossip data until it can be sent Introduce an intermediary - GossipSender - between GossipChannel and Connection. This accumulates gossip data (now represented by the new GossipData interface) from the former until it can be passed onto the latter, allowing the former to proceed when the latter may be blocked on i/o.
Matthias Radestock2015-03-23 23:23:15 +00:00
d5eb76f32e
replace Peer.ForEachConnection with Peer.Connections The former is prone to triggering deadlocks since the lock is held on the peer during the iteration.
Matthias Radestock2015-03-17 16:24:19 +00:00
dbc683f891
send all gossip to new peers only Weave sends all gossip down new connections. We do this so that new peers learn about all gossip'ed information quickly, thus enabling them to process subsequent incremental updates. In particular, for topology gossip it ensures that the remote peer learns about all other peers. This ensures that the incremental update, which is sent as a result of the new connection getting established and which may reference a number of other peers, can be processed.
Matthias Radestock2015-03-16 17:46:01 +00:00