trait HasSynchronizeWithReaders extends HasRunOnClosing

Mix-in for keeping track of a set of the readers. Used for implementing the HasSynchronizeWithClosing logic: Each computation acquires one permit before it starts and released it when done. HasSynchronizeWithReaders.synchronizeWithReaders attempts to acquire all permits and logs progress if slow.

Known Subclasses
AcsCommitmentBenchmarkCaching, AcsCommitmentBenchmarkContractTypes, RegisterTopologyTransactionHandle, SequencerBasedRegisterTopologyTransactionHandle, GrpcSequencerConnectClient, ExecutionContextMonitor, ConsoleEnvironment, Crypto, CryptoPrivateApi, CryptoPrivateStoreApi, SynchronizerCryptoClient, Kms, AwsKms, DriverKms, GcpKms, JcePrivateCrypto, KmsPrivateCrypto, EncryptedCryptoPrivateStore, DbCryptoPrivateStore, DbCryptoPublicStore, DbKmsMetadataStore, TaskScheduler, DemoRunner, BootstrapStage, BootstrapStageOrLeaf, BootstrapStageWithStorage, CantonNodeBootstrap, CantonNodeBootstrapImpl, ManagedNodes, MediatorNodes, Nodes, ParticipantNodes, RunningNode, SequencerNodes, CloseableAtomicHealthComponent, CloseableHealthComponent, CloseableHealthElement, CloseableHealthQuasiComponent, DelegatingMutableHealthComponent, DelegatingMutableHealthQuasiComponent, DependenciesHealthService, GrpcHealthServer, HealthService, HttpHealthServer, LivenessHealthService, MutableHealthComponent, MutableHealthQuasiComponent, LedgerSubscription, ResilientLedgerSubscription, DefaultPromiseUnlessShutdownFactory, FlagCloseable, FlagCloseableAsync, PerformUnlessClosing, SequencerBenchmark, StorageWithDedicatedDatabase, ParticipantNodeBootstrap, AdminWorkflowServices, PackageDependencyResolver, PackageService, PackageUploader, PingService, PartyReplicationAdminWorkflow, PartyReplicator, CommitmentsService, RepairService, RecordOrderPublisher, LedgerApiServerState, LedgerApiIndexer, LedgerApiStore, StartableStoppableLedgerApiServer, CommandSubmitterWithRetry, AbstractMessageProcessor, BadRootHashMessagesRequestProcessor, Phase37Synchronizer, ProtocolProcessor, ReassignmentSynchronizer, SubmissionTrackerImpl, TransactionProcessor, PartyReplicationSourceParticipantProcessor, PartyReplicationTargetParticipantProcessor, AssignmentProcessor, UnassignmentProcessor, TransactionRoutingProcessor, AcsCommitmentBenchmark, AcsCommitmentBenchmarkCatchupConfig, AcsCommitmentBenchmarkLoad, AcsCommitmentMultiHostedPartyTracker, AcsCommitmentProcessor, PruningProcessor, ParticipantReplicaManager, ParticipantPruningScheduler, ContractStore, ParticipantNodePersistentState, DbAcsCommitmentConfigStore, DbAcsCommitmentStore, DbActiveContractStore, DbCommandDeduplicationStore, DbCommitmentQueue, DbContractStore, DbDamlPackageStore, DbInFlightSubmissionStore, DbIncrementalCommitmentStore, DbParticipantPruningSchedulerStore, DbParticipantPruningStore, DbParticipantSettingsStore, DbReassignmentStore, DbRegisteredSynchronizersStore, DbRequestJournalStore, DbSubmissionTrackerStore, DbSynchronizerConnectionConfigStore, DbSynchronizerParameterStore, InMemoryContractStore, MutablePackageMetadataViewImpl, ReassignmentCache, CantonSyncService, ConnectedSynchronizer, ParticipantEventPublisher, SyncEphemeralState, SynchronizerMigration, SynchronizerRegistryHelpers, GrpcSynchronizerRegistry, LedgerServerPartyNotifier, PackageOpsImpl, ParticipantTopologyDispatcher, ResourceCloseable, ReplicaManager, DbLock, DbLockPostgres, DbLockedConnection, DbLockedConnectionPool, DbStorage, DbStorageMulti, DbStorageSingle, DbStore, MemoryStorage, Storage, HasPruningSchedulerStore, ConnectionX, GrpcConnectionX, GrpcInternalSequencerConnectionX, GrpcSequencerConnectionX, InternalSequencerConnectionX, SequencerAggregator, SequencerClientRecorder, SequencerConnectionX, SequencerConnectionXPool, SequencerConnectionXPoolImpl, SequencerSubscriptionPool, SequencerSubscriptionPoolImpl, AuthenticationTokenProvider, PeriodicAcknowledgements, ResilientSequencerSubscriberPekko, ResilientSequencerSubscription, RichSequencerClient, RichSequencerClientImpl, SendTracker, SequencedEventValidatorImpl, SequencerClient, SequencerClientImpl, SequencerClientImplPekko, SequencerSubscription, SequencersTransportState, SequencerChannelClient, SequencerChannelProtocolProcessor, ConsumesCancellableGrpcStreamObserver, GrpcSequencerClientAuth, GrpcSequencerClientTransport, GrpcSequencerClientTransportPekko, GrpcSequencerSubscription, SequencerClientTransport, SequencerClientTransportCommon, SequencerClientTransportPekko, ReplayingEventsSequencerClientTransport, ReplayingSequencerSubscription, ReplayingSendsSequencerClientTransport, ReplayingSendsSequencerClientTransportCommon, ReplayingSendsSequencerClientTransportImpl, ReplayingSendsSequencerClientTransportPekko, SequencedEventStore, SequencerCounterTrackerStore, DbCursorPreheadStore, DbIndexedStringStore, DbPruningSchedulerStore, DbSequencedEventStore, DbSequencerCounterTrackerStore, InMemorySequencedEventStore, InMemorySequencerCounterTrackerStore, BlockSequencerStateManager, BlockSequencerStateManagerBase, DbSequencerBlockStore, CommunityMediatorReplicaManager, EnterpriseMediatorReplicaManager, MediatorNodeBootstrap, MediatorPruningScheduler, MediatorReplicaManager, MediatorRuntime, DbMediatorSynchronizerConfigurationStore, BaseSequencer, CommunityDatabaseSequencerFactory, DatabaseSequencer, DatabaseSequencerFactory, DirectSequencerClientTransport, EnterpriseDatabaseSequencerFactory, HASequencerWriterStoreFactory, LocalSequencerStateEventSignaller, Sequencer, SequencerFactory, SequencerNodeBootstrap, SequencerReader, SequencerRuntime, SequencerWriter, BlockSequencer, BlockSequencerFactory, DriverBlockSequencerFactory, BftBlockOrderer, BftSequencerFactory, AvailabilityModule, DbAvailabilityStore, EpochState, IssConsensusModule, IssSegmentModule, PreIssConsensusModule, SegmentClosingBehaviour, DbEpochStore, StateTransferBehavior, MempoolModule, OutputModule, PekkoBlockSubscription, DbOutputMetadataStore, PruningModule, BftP2PNetworkIn, BftP2PNetworkOut, GrpcNetworking, DbP2PEndpointsStore, Module, P2PNetworkRef, Availability, Consensus, Mempool, Output, P2PNetworkIn, P2PNetworkOut, Pruning, PekkoP2PNetworkRef, DbSequencerStore, DbSequencerSynchronizerConfigurationStore, HASequencerWriterStore, MemberAuthenticationService, MemberAuthenticationServiceImpl, DbSequencerStateManagerStore, ReferenceSequencerDriver, DbReferenceBlockOrderingStore, GrpcSequencerService, ManagedSubscription, SubscriptionPool, EnterpriseSequencerRateLimitManager, TrafficPurchasedManager, DbTrafficConsumedStore, DbTrafficPurchasedStore, PeriodicAction, RemoteClock, SynchronizerTimeTracker, TimeAwaiter, AuthorizedTopologyManager, LocalTopologyManager, QueueBasedSynchronizerOutbox, StoreBasedSynchronizerOutbox, SynchronizerOutbox, SynchronizerOutboxDispatch, SynchronizerOutboxFactorySingleCreate, SynchronizerOutboxHandle, SynchronizerTopologyManager, TemporaryStoreRegistry, TemporaryTopologyManager, TopologyManager, StoreBasedSynchronizerTopologyClient, TopologyAwaiter, TopologyTransactionProcessor, DbInitializationStore, TopologyStore, DbPartyMetadataStore, DbTopologyStore, InMemoryTopologyStore, MessageRecorder, SimpleExecutionQueue, WatchdogService
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HasSynchronizeWithReaders
  2. HasRunOnClosing
  3. HasUnlessClosing
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def isClosing: Boolean

    Returns whether the component is closing or has already been closed

    Returns whether the component is closing or has already been closed

    Definition Classes
    HasUnlessClosing
  2. abstract def keepTrackOfReaderCallStack: Boolean

    Track running computations on shutdown.

    Track running computations on shutdown. Set to true to get stack traces about all computations that did not complete during shutdown. If set to false, we don't do anything.

    Attributes
    protected[this]
  3. abstract def logger: TracedLogger
    Attributes
    protected[this]
  4. abstract def nameInternal: String
    Attributes
    protected[this]
  5. abstract def runOnClose(task: RunOnClosing): UnlessShutdown[LifeCycleRegistrationHandle]

    Schedules the given task to be run upon closing.

    Schedules the given task to be run upon closing.

    returns

    An com.digitalasset.canton.lifecycle.UnlessShutdown.Outcome indicates that the task will have been run when the LifeCycleManager's closeAsync method completes or when AutoCloseable's close method returns, unless the returned LifeCycleRegistrationHandle was used to cancel the task or the task has been done beforehand. com.digitalasset.canton.lifecycle.UnlessShutdown.AbortedDueToShutdown if the task is not run due to closing. This always happens if isClosing returns true.

    Definition Classes
    HasRunOnClosing
  6. abstract def runTaskUnlessDone(task: RunOnClosing)(implicit traceContext: TraceContext): Unit
    Attributes
    protected[this]
    Definition Classes
    HasRunOnClosing
  7. abstract def synchronizeWithClosingPatience: FiniteDuration
    Attributes
    protected[this]

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addReader(reader: String)(implicit traceContext: TraceContext): UnlessShutdown[ReaderHandle]

    TODO(#16601) Make this method private once PerformUnlessClosing doesn't need it any more

    TODO(#16601) Make this method private once PerformUnlessClosing doesn't need it any more

    Attributes
    protected[this]
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  15. def remainingReaders(): Seq[String]
    Attributes
    protected[this]
  16. def removeReader(handle: ReaderHandle): Unit

    TODO(#16601) Make this method private once PerformUnlessClosing doesn't need it any more

    TODO(#16601) Make this method private once PerformUnlessClosing doesn't need it any more

    Attributes
    protected[this]
  17. def runOnOrAfterClose(task: RunOnClosing)(implicit traceContext: TraceContext): LifeCycleRegistrationHandle

    Register a task to run when closing is initiated, or run it immediately if closing is already ongoing.

    Register a task to run when closing is initiated, or run it immediately if closing is already ongoing. Unlike runOnClose, this method does not guarantee that this task will have run by the time the LifeCycleManager's closeAsync method completes or AutoCloseable's close returns. This is because the task is run immediately if the component has already been closed.

    Definition Classes
    HasRunOnClosing
  18. final def runOnOrAfterClose_(task: RunOnClosing)(implicit traceContext: TraceContext): Unit

    Variant of runOnOrAfterClose that does not return a com.digitalasset.canton.lifecycle.LifeCycleRegistrationHandle.

  19. def synchronizeWithReaders()(implicit traceContext: TraceContext): Boolean
    Attributes
    protected[this]
  20. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  21. def toString(): String
    Definition Classes
    AnyRef → Any
  22. final def unlessClosing[F[_], A](fa: => F[A])(implicit F: CanAbortDueToShutdown[F]): F[A]

    Runs the computation fa unless isClosing returns true.

    Runs the computation fa unless isClosing returns true.

    This method does not delay the closing while fa is running, unlike the methods in HasSynchronizeWithClosing. Accordingly, this method is useful for intermittent checks whether the result of the computation is still relevant.

    returns

    The result of fa or com.digitalasset.canton.lifecycle.UnlessShutdown.AbortedDueToShutdown if isClosing is true

    Definition Classes
    HasUnlessClosing
    Annotations
    @inline()
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  25. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  26. def withReader[F[_], A](name: String)(f: => F[A])(implicit traceContext: TraceContext, F: Thereafter[F]): UnlessShutdown[F[A]]
    Attributes
    protected[this]

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from HasRunOnClosing

Inherited from HasUnlessClosing

Inherited from AnyRef

Inherited from Any

Ungrouped