public override bool WillEnd(object obj, SynchronousOptions opts = null) { var willLeftBegin = LeftSynchronizer.WillBegin(obj); var willRightBegin = RightSynchronizer.WillBegin(obj); if (willLeftBegin && willRightBegin) { return(false); } else if (willLeftBegin) { return(RightSynchronizer.WillEnd(obj, SynchronousOptions.UpdateInternalOptions(opts, new InternalSynchronousOptions().WithHandlingCondition()))); } else if (willRightBegin) { return(LeftSynchronizer.WillEnd(obj, SynchronousOptions.UpdateInternalOptions(opts, new InternalSynchronousOptions().WithHandlingCondition()))); } else { return(LeftSynchronizer.WillEnd(obj, opts)); } }
public override bool WillEnd(object obj, SynchronousOptions opts = null) { return(LeftSynchronizer.WillEnd(obj, opts) && RightSynchronizer.WillEnd(obj, opts)); }