• Max Inden's avatar
    client/network-gossip: Merge GossipEngine and GossipEngineInner (#5042) · 78cdd3bf
    Max Inden authored
    * client/network-gossip: Merge GossipEngine and GossipEngineInner
    
    Given that GossipEngine and GossipEngineInner are not shared between
    threads anyone (public interface + background tasks), neither depends on
    being Send or Sync. Thus one can merge the two as done in this patch.
    One only needs to wrap an `Arc<Mutex<>>` around the whole structure when
    the owner (e.g. finality-grandpa) needs to share the gossip engine
    between threads.
    
    * client/finality-grandpa: Wrap GossipEngine in Arc Mutex & lock it on use
    
    GossipEngine in itself has no need to be Send and Sync, given that it
    does not rely on separately spawned background tasks anymore. Given that
    finality-grandpa shares the `NetworkBridge` potentially between threads
    its components need to be clonable, thus this patch wraps `GossipEngine`
    in an `Arc<Mutex<>>`.
    78cdd3bf