in component-dsl/src/main/java/org/apache/aries/component/dsl/internal/OnlyLastPublisher.java [50:74]
public synchronized OSGiResult publish(T t) {
_terminator.run();
_terminator = _op.publish(t);
if (_injectOnLeave == null) {
return OSGi.NOOP;
}
else {
_counter.incrementAndGet();
return new OSGiResultImpl(
() -> {
synchronized (this) {
_terminator.run();
if (_counter.decrementAndGet() > 0) {
_terminator = _op.publish(_injectOnLeave.get());
}
}
},
() -> _terminator.update()
);
}
}