public override void Start() { if( 0 == Interlocked.Exchange(ref _is_started, 1) ) { } else { throw new Exception("Can only call PathEdgeListener.Start() once!"); } }