private InternRoot CreateProtocolInternRoot(Lifetime lifetime) { var root = new InternRoot(); root.RdId = RdId.Nil.Mix(ProtocolInternRootRdId); Scheduler.Queue(() => { root.Bind(lifetime, this, ProtocolInternRootRdId); }); return(root); }
protected override void Init(Lifetime lifetime) { base.Init(lifetime); Assertion.Assert(myHandler.IsSendWithoutContexts, "Must bind context handler without sending contexts to prevent reentrancy"); myInternRoot.RdId = RdId.Mix("InternRoot"); myProtocolValueSet.RdId = RdId.Mix("ValueSet"); myInternRoot.Bind(lifetime, this, "InternRoot"); myProtocolValueSet.Bind(lifetime, this, "ValueSet"); myProtocolValueSet.Advise(lifetime, HandleProtocolSetEvent); }
private InternRoot <object> CreateProtocolInternRoot(Lifetime lifetime) { var root = new InternRoot <object>(); root.RdId = RdId.Nil.Mix(ProtocolInternRootRdId); Scheduler.InvokeOrQueue(() => { if (!lifetime.IsAlive) { return; } root.Bind(lifetime, this, ProtocolInternRootRdId); }); return(root); }