/// <summary> /// Lock the producer and transmit pointstamp counts to the appropriate consumer(s) /// </summary> public void Start() { Tracing.Trace("(ProdLock"); lock (this) { // note: FOC may return without sending stuff due to re-entrancy. if (outstandingRecords.Count > 0) { Aggregator.OnRecv(outstandingRecords); outstandingRecords.Clear(); } } Tracing.Trace(")ProdLock"); }
/// <summary> /// Lock the producer and transmit pointstamp counts to the appropriate consumer(s) /// </summary> public void Start() { NaiadTracing.Trace.LockAcquire(this); lock (this) { NaiadTracing.Trace.LockHeld(this); // note: FOC may return without sending stuff due to re-entrancy. if (outstandingRecords.Count > 0) { Aggregator.OnRecv(outstandingRecords); outstandingRecords.Clear(); } } NaiadTracing.Trace.LockRelease(this); }