public synchronized OSGiResult publish()

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()
            );
        }
    }