@zlink-systems/framework 0.30.3 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/contracts/Actors/ZLinkActor.d.ts +2 -0
- package/dist/contracts/Actors/ZLinkSessionBindingIdentity.d.ts +6 -0
- package/dist/contracts/Actors/ZLinkSessionBindingIdentity.js +2 -0
- package/dist/contracts/Actors/index.d.ts +1 -0
- package/dist/contracts/Actors/index.js +1 -0
- package/dist/contracts/Common/CoreTypes.d.ts +1 -0
- package/dist/contracts/Common/HandlerMessageType.d.ts +8 -0
- package/dist/contracts/Common/HandlerMessageType.js +41 -0
- package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +1 -1
- package/dist/contracts/Common/ZLinkEncodedPayload.js +12 -20
- package/dist/contracts/Common/ZLinkMessage.js +11 -7
- package/dist/contracts/Common/encoded-payload-storage.d.ts +0 -2
- package/dist/contracts/Common/encoded-payload-storage.js +4 -16
- package/dist/contracts/Common/index.d.ts +1 -1
- package/dist/contracts/Common/payload-slab.d.ts +4 -0
- package/dist/contracts/Common/payload-slab.js +30 -0
- package/dist/contracts/Configuration/RegistrationBuilders.js +15 -9
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +19 -0
- package/dist/contracts/Handlers/Contexts.d.ts +1 -0
- package/dist/contracts/Locations/Authority.d.ts +2 -0
- package/dist/internal.d.ts +9 -0
- package/dist/internal.js +23 -1
- package/dist/nest-integration.d.ts +1 -0
- package/dist/nest-integration.js +3 -1
- package/dist/runtime/actors/actor-client.d.ts +6 -2
- package/dist/runtime/actors/actor-client.js +120 -82
- package/dist/runtime/actors/actor-context.js +16 -5
- package/dist/runtime/actors/actor-execution-context.js +2 -2
- package/dist/runtime/actors/actor-handoff.d.ts +12 -1
- package/dist/runtime/actors/actor-handoff.js +79 -34
- package/dist/runtime/actors/actor-join-deferred-scope.js +6 -6
- package/dist/runtime/actors/actor-local-native-join.d.ts +2 -2
- package/dist/runtime/actors/actor-local-native-join.js +19 -17
- package/dist/runtime/actors/actor-mailbox.d.ts +1 -1
- package/dist/runtime/actors/actor-remote-joiner.d.ts +2 -2
- package/dist/runtime/actors/actor-remote-joiner.js +4 -4
- package/dist/runtime/actors/actor-routed-join-transport.d.ts +9 -3
- package/dist/runtime/actors/actor-routed-json-request.d.ts +3 -0
- package/dist/runtime/actors/actor-runtime-contracts.d.ts +2 -2
- package/dist/runtime/actors/actor-runtime-state.d.ts +1 -1
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +9 -5
- package/dist/runtime/actors/spot-actor-dispatch.js +60 -38
- package/dist/runtime/admission.d.ts +6 -4
- package/dist/runtime/admission.js +21 -10
- package/dist/runtime/application-jobs/application-ingress-record-owner.d.ts +1 -0
- package/dist/runtime/application-jobs/application-ingress-record-owner.js +3 -0
- package/dist/runtime/backend/contracts/index.d.ts +26 -10
- package/dist/runtime/backend/mesh-completion-table.d.ts +7 -1
- package/dist/runtime/backend/mesh-completion-table.js +84 -20
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +19 -6
- package/dist/runtime/backend/mesh-dispatch-pump.js +246 -147
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -2
- package/dist/runtime/backend/node/node-backend-adapter-support.js +27 -19
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +5 -2
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +70 -13
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +4 -3
- package/dist/runtime/backend/node/node-mesh-backend-adapter.js +5 -1
- package/dist/runtime/backend/node/node-raw-binding-port.d.ts +7 -2
- package/dist/runtime/backend/node/node-raw-binding-port.js +99 -63
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +34 -16
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +210 -106
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +20 -6
- package/dist/runtime/backend/raw-binding-port.d.ts +6 -3
- package/dist/runtime/channels/channel-clients.js +3 -3
- package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +11 -7
- package/dist/runtime/channels/channel-dispatch-pipeline.js +40 -22
- package/dist/runtime/channels/channel-dispatch-services.d.ts +3 -1
- package/dist/runtime/channels/channel-dispatch-services.js +7 -6
- package/dist/runtime/channels/channel-dispatchers.d.ts +13 -6
- package/dist/runtime/channels/channel-dispatchers.js +57 -36
- package/dist/runtime/channels/channel-envelope.d.ts +2 -2
- package/dist/runtime/channels/channel-envelope.js +609 -83
- package/dist/runtime/channels/channel-multipart.d.ts +1 -0
- package/dist/runtime/channels/channel-multipart.js +10 -6
- package/dist/runtime/channels/channel-outbound-operations.d.ts +6 -9
- package/dist/runtime/channels/channel-outbound-operations.js +107 -105
- package/dist/runtime/channels/channel-receive-loops.d.ts +9 -7
- package/dist/runtime/channels/channel-receive-loops.js +126 -90
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +23 -6
- package/dist/runtime/channels/channel-runtime-lifecycle.js +47 -38
- package/dist/runtime/channels/channel-runtime-manager.d.ts +13 -6
- package/dist/runtime/channels/channel-runtime-manager.js +32 -14
- package/dist/runtime/channels/channel-socket-registry.d.ts +28 -4
- package/dist/runtime/channels/channel-socket-registry.js +9 -1
- package/dist/runtime/channels/channel-transports.d.ts +23 -16
- package/dist/runtime/channels/channel-transports.js +139 -119
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +4 -4
- package/dist/runtime/channels/dispatch-error-reporter.js +5 -5
- package/dist/runtime/channels/fanout-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/local-spot-route-transport.d.ts +5 -2
- package/dist/runtime/channels/local-spot-route-transport.js +15 -18
- package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +6 -3
- package/dist/runtime/channels/router-socket-spot-route-transport.js +33 -19
- package/dist/runtime/channels/source-spot-router.d.ts +6 -3
- package/dist/runtime/channels/source-spot-router.js +34 -23
- package/dist/runtime/channels/spot-node-route-transport.d.ts +6 -3
- package/dist/runtime/channels/spot-node-route-transport.js +23 -17
- package/dist/runtime/channels/spot-route-bridge-transport.d.ts +6 -3
- package/dist/runtime/channels/spot-route-bridge-transport.js +38 -24
- package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +8 -4
- package/dist/runtime/channels/spot-route-dispatch-strategy.js +36 -23
- package/dist/runtime/diagnostics/dispatch-error-details.js +9 -3
- package/dist/runtime/diagnostics/message-flow-bootstrap.d.ts +1 -0
- package/dist/runtime/diagnostics/message-flow-bootstrap.js +8 -0
- package/dist/runtime/diagnostics/message-flow-delivery.d.ts +47 -0
- package/dist/runtime/diagnostics/message-flow-delivery.js +149 -0
- package/dist/runtime/diagnostics/message-flow-record.d.ts +50 -0
- package/dist/runtime/diagnostics/message-flow-record.js +228 -0
- package/dist/runtime/diagnostics/message-flow-worker.d.ts +1 -0
- package/dist/runtime/diagnostics/message-flow-worker.js +118 -0
- package/dist/runtime/diagnostics/message-flow.d.ts +7 -19
- package/dist/runtime/diagnostics/message-flow.js +42 -290
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +4 -3
- package/dist/runtime/diagnostics/runtime-metrics.js +8 -4
- package/dist/runtime/execution/index.d.ts +1 -0
- package/dist/runtime/execution/index.js +6 -3
- package/dist/runtime/execution/serial-execution-queue.d.ts +26 -13
- package/dist/runtime/execution/serial-execution-queue.js +75 -71
- package/dist/runtime/foundation/durable-service-request.d.ts +12 -3
- package/dist/runtime/foundation/durable-service-request.js +158 -73
- package/dist/runtime/foundation/operation-registry.d.ts +33 -3
- package/dist/runtime/foundation/operation-registry.js +272 -33
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +62 -23
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +373 -194
- package/dist/runtime/foundation/request-runtime.d.ts +17 -0
- package/dist/runtime/foundation/request-runtime.js +163 -0
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +6 -0
- package/dist/runtime/foundation/service-liveness-registry.d.ts +1 -1
- package/dist/runtime/foundation/service-mailbox.d.ts +4 -2
- package/dist/runtime/foundation/service-mailbox.js +4 -1
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +2 -2
- package/dist/runtime/foundation/service-relocation-object-owner.js +12 -5
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +7 -2
- package/dist/runtime/foundation/service-stateful-registry.d.ts +6 -2
- package/dist/runtime/foundation/service-stateful-registry.js +38 -17
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +91 -26
- package/dist/runtime/foundation/service-stateful-runtime.js +245 -120
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -0
- package/dist/runtime/foundation/service-stateful-wire-codec.js +15 -0
- package/dist/runtime/foundation/service-topology-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-topology-registry.js +13 -3
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +12 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +5 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.js +50 -15
- package/dist/runtime/host/actor-packet-relay.d.ts +5 -6
- package/dist/runtime/host/actor-packet-relay.js +58 -57
- package/dist/runtime/host/actor-placement-coordinator.d.ts +1 -1
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +3 -2
- package/dist/runtime/host/actor-transfer-runtime.d.ts +3 -3
- package/dist/runtime/host/application-job-queue.d.ts +7 -5
- package/dist/runtime/host/application-job-queue.js +33 -21
- package/dist/runtime/host/bound-session-relay.js +0 -1
- package/dist/runtime/host/channel-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -0
- package/dist/runtime/host/entry-actor-runtime.d.ts +5 -2
- package/dist/runtime/host/entry-actor-runtime.js +2 -2
- package/dist/runtime/host/index.d.ts +106 -37
- package/dist/runtime/host/index.js +303 -151
- package/dist/runtime/host/location-runtime-owner.d.ts +2 -2
- package/dist/runtime/host/location-runtime-owner.js +1 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +195 -45
- package/dist/runtime/host/service-relocation-host-runtime.js +257 -144
- package/dist/runtime/host/spot-address-transport.d.ts +3 -0
- package/dist/runtime/host/spot-address-transport.js +73 -76
- package/dist/runtime/host/spot-runtime-options-factory.js +2 -0
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -1
- package/dist/runtime/host/user-spot-creation-coordinator.js +49 -21
- package/dist/runtime/internal-observation.d.ts +1 -0
- package/dist/runtime/internal-observation.js +5 -0
- package/dist/runtime/locations/actor-location-claims.d.ts +1 -1
- package/dist/runtime/locations/actor-location-claims.js +15 -6
- package/dist/runtime/locations/auto-connect-loop.d.ts +0 -1
- package/dist/runtime/locations/auto-connect-loop.js +25 -19
- package/dist/runtime/locations/auto-connect-planner.js +2 -5
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +1 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +35 -23
- package/dist/runtime/locations/in-memory-authority-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-authority-store.js +15 -5
- package/dist/runtime/locations/in-memory-location-store.d.ts +0 -2
- package/dist/runtime/locations/in-memory-location-store.js +1 -38
- package/dist/runtime/locations/lifecycle.d.ts +1 -1
- package/dist/runtime/locations/lifecycle.js +2 -2
- package/dist/runtime/locations/location-store-repository.d.ts +0 -1
- package/dist/runtime/locations/location-store-repository.js +163 -246
- package/dist/runtime/locations/resolvers.d.ts +8 -1
- package/dist/runtime/locations/resolvers.js +16 -2
- package/dist/runtime/locations/runtime.d.ts +3 -3
- package/dist/runtime/locations/runtime.js +12 -16
- package/dist/runtime/messaging/creation-payload-codec.js +8 -7
- package/dist/runtime/messaging/framework-json-v1.d.ts +1 -1
- package/dist/runtime/messaging/framework-json-v1.js +6 -2
- package/dist/runtime/messaging/payload-codec.js +21 -35
- package/dist/runtime/messaging/request-deadline.d.ts +4 -2
- package/dist/runtime/messaging/request-deadline.js +40 -25
- package/dist/runtime/messaging/request-result.d.ts +14 -1
- package/dist/runtime/messaging/request-result.js +74 -13
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +4 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +17 -7
- package/dist/runtime/spots/index.d.ts +28 -7
- package/dist/runtime/spots/index.js +31 -6
- package/dist/runtime/spots/spot-activation-registry.d.ts +3 -2
- package/dist/runtime/spots/spot-activation-registry.js +13 -8
- package/dist/runtime/spots/spot-activation-state.d.ts +2 -0
- package/dist/runtime/spots/spot-activation-state.js +1 -0
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +9 -4
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +33 -12
- package/dist/runtime/spots/spot-actor-ingress-admission.d.ts +40 -0
- package/dist/runtime/spots/spot-actor-ingress-admission.js +78 -0
- package/dist/runtime/spots/spot-actor-membership.js +3 -3
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +16 -43
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +56 -113
- package/dist/runtime/spots/spot-actor-packet-drain.d.ts +1 -0
- package/dist/runtime/spots/spot-actor-packet-drain.js +12 -5
- package/dist/runtime/spots/spot-entry-activation.d.ts +4 -3
- package/dist/runtime/spots/spot-entry-activation.js +7 -12
- package/dist/runtime/spots/spot-handler-registry.d.ts +5 -1
- package/dist/runtime/spots/spot-handler-registry.js +31 -15
- package/dist/runtime/spots/spot-manager-public.js +3 -2
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +11 -6
- package/dist/runtime/spots/spot-node-runtime-manager.js +6 -1
- package/dist/runtime/spots/spot-outbound.d.ts +8 -2
- package/dist/runtime/spots/spot-outbound.js +5 -5
- package/dist/runtime/spots/spot-route-packet-dispatch.js +13 -8
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +3 -3
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +9 -5
- package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -2
- package/dist/runtime/spots/spot-serial-executor.d.ts +2 -1
- package/dist/runtime/spots/spot-serial-turn-executor.js +20 -26
- package/dist/runtime/spots/spot-subscription-dispatch.js +5 -2
- package/dist/runtime/spots/spot-timer.d.ts +1 -1
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +11 -3
- package/dist/runtime/streams/actor-session-binding-registry.js +28 -0
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +2 -2
- package/dist/runtime/streams/bound-actor-relay-sender.js +3 -4
- package/dist/runtime/streams/bound-session-service.js +6 -7
- package/dist/runtime/streams/index.d.ts +3 -3
- package/dist/runtime/streams/index.js +22 -2
- package/dist/runtime/streams/managed-stream.js +2 -1
- package/dist/runtime/streams/session-calls.d.ts +1 -1
- package/dist/runtime/streams/session-calls.js +3 -9
- package/dist/runtime/streams/session-context.d.ts +2 -2
- package/dist/runtime/streams/session-context.js +2 -2
- package/dist/runtime/streams/stream-session-runtime.d.ts +1 -0
- package/dist/runtime/streams/stream-session-runtime.js +64 -33
- package/package.json +3 -3
- package/src/contracts/Actors/ZLinkActor.ts +6 -0
- package/src/contracts/Actors/ZLinkSessionBindingIdentity.ts +7 -0
- package/src/contracts/Actors/index.ts +1 -0
- package/src/contracts/Common/CoreTypes.ts +1 -0
- package/src/contracts/Common/HandlerMessageType.ts +50 -0
- package/src/contracts/Common/ZLinkEncodedPayload.ts +13 -25
- package/src/contracts/Common/ZLinkMessage.ts +11 -7
- package/src/contracts/Common/encoded-payload-storage.ts +4 -16
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Common/payload-slab.ts +29 -0
- package/src/contracts/Configuration/RegistrationBuilders.ts +29 -15
- package/src/contracts/Configuration/RegistrationTypes.ts +19 -0
- package/src/contracts/Handlers/Contexts.ts +1 -0
- package/src/contracts/Locations/Authority.ts +7 -1
- package/src/internal.ts +17 -0
- package/src/nest-integration.ts +1 -0
- package/src/runtime/actors/actor-client.ts +257 -163
- package/src/runtime/actors/actor-context.ts +26 -14
- package/src/runtime/actors/actor-execution-context.ts +2 -2
- package/src/runtime/actors/actor-handoff.ts +86 -51
- package/src/runtime/actors/actor-join-deferred-scope.ts +6 -6
- package/src/runtime/actors/actor-local-native-join.ts +38 -17
- package/src/runtime/actors/actor-mailbox.ts +1 -1
- package/src/runtime/actors/actor-remote-joiner.ts +8 -4
- package/src/runtime/actors/actor-routed-join-transport.ts +13 -5
- package/src/runtime/actors/actor-routed-json-request.ts +3 -0
- package/src/runtime/actors/actor-runtime-contracts.ts +4 -2
- package/src/runtime/actors/actor-runtime-state.ts +1 -1
- package/src/runtime/actors/spot-actor-dispatch.ts +70 -68
- package/src/runtime/admission.ts +42 -15
- package/src/runtime/application-jobs/application-ingress-record-owner.ts +4 -0
- package/src/runtime/backend/contracts/index.ts +77 -10
- package/src/runtime/backend/mesh-completion-table.ts +106 -15
- package/src/runtime/backend/mesh-dispatch-pump.ts +294 -146
- package/src/runtime/backend/node/node-backend-adapter-support.ts +42 -32
- package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +91 -34
- package/src/runtime/backend/node/node-event-loop-poller.ts +14 -5
- package/src/runtime/backend/node/node-mesh-backend-adapter.ts +5 -1
- package/src/runtime/backend/node/node-raw-binding-port.ts +180 -69
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +386 -157
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +56 -11
- package/src/runtime/backend/raw-binding-port.ts +13 -5
- package/src/runtime/channels/channel-clients.ts +26 -11
- package/src/runtime/channels/channel-dispatch-pipeline.ts +77 -65
- package/src/runtime/channels/channel-dispatch-services.ts +7 -12
- package/src/runtime/channels/channel-dispatchers.ts +93 -39
- package/src/runtime/channels/channel-envelope.ts +680 -144
- package/src/runtime/channels/channel-multipart.ts +17 -13
- package/src/runtime/channels/channel-outbound-operations.ts +204 -178
- package/src/runtime/channels/channel-receive-loops.ts +160 -107
- package/src/runtime/channels/channel-runtime-lifecycle.ts +64 -59
- package/src/runtime/channels/channel-runtime-manager.ts +74 -27
- package/src/runtime/channels/channel-socket-registry.ts +20 -5
- package/src/runtime/channels/channel-transports.ts +414 -287
- package/src/runtime/channels/dispatch-error-reporter.ts +4 -9
- package/src/runtime/channels/local-spot-route-transport.ts +27 -29
- package/src/runtime/channels/router-socket-spot-route-transport.ts +63 -32
- package/src/runtime/channels/source-spot-router.ts +75 -38
- package/src/runtime/channels/spot-node-route-transport.ts +67 -37
- package/src/runtime/channels/spot-route-bridge-transport.ts +62 -30
- package/src/runtime/channels/spot-route-dispatch-strategy.ts +105 -34
- package/src/runtime/diagnostics/dispatch-error-details.ts +10 -2
- package/src/runtime/diagnostics/message-flow-bootstrap.ts +6 -0
- package/src/runtime/diagnostics/message-flow-delivery.ts +171 -0
- package/src/runtime/diagnostics/message-flow-record.ts +295 -0
- package/src/runtime/diagnostics/message-flow-worker.ts +146 -0
- package/src/runtime/diagnostics/message-flow.ts +49 -362
- package/src/runtime/diagnostics/runtime-metrics.ts +10 -4
- package/src/runtime/execution/index.ts +6 -0
- package/src/runtime/execution/serial-execution-queue.ts +94 -96
- package/src/runtime/foundation/durable-service-request.ts +212 -89
- package/src/runtime/foundation/operation-registry.ts +287 -38
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +617 -292
- package/src/runtime/foundation/request-runtime.ts +227 -0
- package/src/runtime/foundation/service-discovery-registry.ts +7 -0
- package/src/runtime/foundation/service-liveness-registry.ts +1 -1
- package/src/runtime/foundation/service-mailbox.ts +7 -2
- package/src/runtime/foundation/service-relocation-object-owner.ts +21 -6
- package/src/runtime/foundation/service-runtime-contracts.ts +12 -2
- package/src/runtime/foundation/service-stateful-registry.ts +52 -19
- package/src/runtime/foundation/service-stateful-runtime.ts +365 -198
- package/src/runtime/foundation/service-stateful-wire-codec.ts +18 -0
- package/src/runtime/foundation/service-topology-registry.ts +21 -3
- package/src/runtime/foundation/service-wire-constants.generated.ts +10 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -17
- package/src/runtime/host/actor-packet-relay.ts +160 -156
- package/src/runtime/host/actor-placement-coordinator.ts +1 -1
- package/src/runtime/host/actor-runtime-options-factory.ts +7 -2
- package/src/runtime/host/actor-transfer-runtime.ts +3 -3
- package/src/runtime/host/application-job-queue.ts +56 -27
- package/src/runtime/host/bound-session-relay.ts +0 -1
- package/src/runtime/host/channel-runtime-options-factory.ts +3 -0
- package/src/runtime/host/entry-actor-runtime.ts +14 -6
- package/src/runtime/host/index.ts +388 -113
- package/src/runtime/host/location-runtime-owner.ts +3 -3
- package/src/runtime/host/service-relocation-host-runtime.ts +380 -252
- package/src/runtime/host/spot-address-transport.ts +110 -95
- package/src/runtime/host/spot-runtime-options-factory.ts +3 -0
- package/src/runtime/host/user-spot-creation-coordinator.ts +69 -22
- package/src/runtime/internal-observation.ts +2 -0
- package/src/runtime/locations/actor-location-claims.ts +42 -16
- package/src/runtime/locations/auto-connect-loop.ts +24 -16
- package/src/runtime/locations/auto-connect-planner.ts +2 -5
- package/src/runtime/locations/auto-connect-reconciler.ts +37 -24
- package/src/runtime/locations/in-memory-authority-store.ts +27 -7
- package/src/runtime/locations/in-memory-location-store.ts +1 -74
- package/src/runtime/locations/lifecycle.ts +4 -2
- package/src/runtime/locations/location-store-repository.ts +228 -308
- package/src/runtime/locations/resolvers.ts +20 -8
- package/src/runtime/locations/runtime.ts +16 -28
- package/src/runtime/messaging/creation-payload-codec.ts +12 -10
- package/src/runtime/messaging/framework-json-v1.ts +10 -1
- package/src/runtime/messaging/payload-codec.ts +50 -75
- package/src/runtime/messaging/request-deadline.ts +47 -39
- package/src/runtime/messaging/request-result.ts +88 -17
- package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
- package/src/runtime/spots/index.ts +57 -10
- package/src/runtime/spots/spot-activation-registry.ts +12 -8
- package/src/runtime/spots/spot-activation-state.ts +2 -0
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +62 -37
- package/src/runtime/spots/spot-actor-ingress-admission.ts +157 -0
- package/src/runtime/spots/spot-actor-membership.ts +8 -5
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +122 -206
- package/src/runtime/spots/spot-actor-packet-drain.ts +21 -6
- package/src/runtime/spots/spot-entry-activation.ts +25 -35
- package/src/runtime/spots/spot-handler-registry.ts +72 -15
- package/src/runtime/spots/spot-manager-public.ts +4 -2
- package/src/runtime/spots/spot-node-runtime-manager.ts +16 -7
- package/src/runtime/spots/spot-outbound.ts +26 -10
- package/src/runtime/spots/spot-route-packet-dispatch.ts +18 -8
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +14 -8
- package/src/runtime/spots/spot-runtime-ports.ts +5 -2
- package/src/runtime/spots/spot-serial-executor.ts +1 -1
- package/src/runtime/spots/spot-serial-turn-executor.ts +25 -40
- package/src/runtime/spots/spot-subscription-dispatch.ts +9 -2
- package/src/runtime/spots/spot-timer.ts +1 -1
- package/src/runtime/streams/actor-session-binding-registry.ts +46 -3
- package/src/runtime/streams/bound-actor-relay-sender.ts +16 -5
- package/src/runtime/streams/bound-session-service.ts +10 -7
- package/src/runtime/streams/index.ts +30 -4
- package/src/runtime/streams/managed-stream.ts +2 -1
- package/src/runtime/streams/session-calls.ts +9 -14
- package/src/runtime/streams/session-context.ts +6 -11
- package/src/runtime/streams/stream-session-runtime.ts +79 -40
- package/dist/runtime/spots/spot-lifecycle-metrics.d.ts +0 -8
- package/dist/runtime/spots/spot-lifecycle-metrics.js +0 -17
- package/src/runtime/spots/spot-lifecycle-metrics.ts +0 -16
|
@@ -72,9 +72,9 @@ interface ZLinkSerialAdmissionLane {
|
|
|
72
72
|
* Application work carries the host permit through the queue until the handler starts.
|
|
73
73
|
*/
|
|
74
74
|
export class ZLinkSerialExecutionQueue {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
readonly application: ZLinkSerialAdmissionLane;
|
|
76
|
+
readonly lifecycle: ZLinkSerialAdmissionLane;
|
|
77
|
+
activeLifecycle?: ZLinkSerialWorkRecord<unknown>;
|
|
78
78
|
private activeRecord?: ZLinkSerialWorkRecord<unknown>;
|
|
79
79
|
/** The admitted node itself owns ready membership; no second readiness flag. */
|
|
80
80
|
private ownerMembership?: SerialWorkRecord<unknown>;
|
|
@@ -86,10 +86,10 @@ export class ZLinkSerialExecutionQueue {
|
|
|
86
86
|
private lifecycleDebt = false;
|
|
87
87
|
private claimStartedAt?: number;
|
|
88
88
|
private closed = false;
|
|
89
|
-
|
|
89
|
+
readonly idleWaiters: Array<() => void> = [];
|
|
90
90
|
|
|
91
91
|
constructor(
|
|
92
|
-
|
|
92
|
+
readonly executeRecord: (record: ZLinkSerialWorkRecord<unknown>) => Promise<void>,
|
|
93
93
|
options: ZLinkSerialSchedulerOptions = {},
|
|
94
94
|
private readonly sharedOwner?: ZLinkSerialExecutionQueue
|
|
95
95
|
) {
|
|
@@ -105,7 +105,7 @@ export class ZLinkSerialExecutionQueue {
|
|
|
105
105
|
|
|
106
106
|
submit<T>(
|
|
107
107
|
operation: () => Promise<T> | T,
|
|
108
|
-
options
|
|
108
|
+
options?: ZLinkSerialWorkOptions,
|
|
109
109
|
context?: unknown
|
|
110
110
|
): Promise<T> {
|
|
111
111
|
try {
|
|
@@ -118,7 +118,7 @@ export class ZLinkSerialExecutionQueue {
|
|
|
118
118
|
submitDetached<T>(
|
|
119
119
|
operation: () => Promise<T> | T,
|
|
120
120
|
onError: (error: unknown) => void,
|
|
121
|
-
options
|
|
121
|
+
options?: ZLinkSerialWorkOptions,
|
|
122
122
|
context?: unknown
|
|
123
123
|
): void {
|
|
124
124
|
void this.submit(operation, options, context).catch(onError);
|
|
@@ -129,7 +129,7 @@ export class ZLinkSerialExecutionQueue {
|
|
|
129
129
|
*/
|
|
130
130
|
submitContinuation<T>(operation: () => Promise<T> | T, context?: unknown): Promise<T> {
|
|
131
131
|
try {
|
|
132
|
-
return this.admit(operation,
|
|
132
|
+
return this.admit(operation, undefined, context);
|
|
133
133
|
} catch (error) {
|
|
134
134
|
return Promise.reject(error);
|
|
135
135
|
}
|
|
@@ -143,7 +143,7 @@ export class ZLinkSerialExecutionQueue {
|
|
|
143
143
|
*/
|
|
144
144
|
admitDurablePrefix<T>(
|
|
145
145
|
operation: () => Promise<T> | T,
|
|
146
|
-
options
|
|
146
|
+
options?: ZLinkSerialWorkOptions,
|
|
147
147
|
context?: unknown,
|
|
148
148
|
preparation?: ZLinkSerialWorkPreparation
|
|
149
149
|
): Promise<T> {
|
|
@@ -156,7 +156,7 @@ export class ZLinkSerialExecutionQueue {
|
|
|
156
156
|
*/
|
|
157
157
|
submitPreAdmitted<T>(
|
|
158
158
|
operation: () => Promise<T> | T,
|
|
159
|
-
options
|
|
159
|
+
options?: ZLinkSerialWorkOptions,
|
|
160
160
|
context?: unknown
|
|
161
161
|
): Promise<T> {
|
|
162
162
|
return this.admit(operation, options, context);
|
|
@@ -175,7 +175,8 @@ export class ZLinkSerialExecutionQueue {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
visitPendingApplication(visitor: (record: ZLinkSerialWorkRecord<unknown>) => void): void {
|
|
178
|
-
for (
|
|
178
|
+
for (let index = 0; index < this.application.records.length; index++) {
|
|
179
|
+
const record = this.application.records[index]!;
|
|
179
180
|
if (record.mailbox === undefined) visitor(record);
|
|
180
181
|
}
|
|
181
182
|
}
|
|
@@ -216,17 +217,16 @@ export class ZLinkSerialExecutionQueue {
|
|
|
216
217
|
return this.closed;
|
|
217
218
|
}
|
|
218
219
|
|
|
219
|
-
|
|
220
|
+
admit<T>(
|
|
220
221
|
operation: () => Promise<T> | T,
|
|
221
|
-
options: ZLinkSerialWorkOptions,
|
|
222
|
+
options: ZLinkSerialWorkOptions | undefined,
|
|
222
223
|
context?: unknown,
|
|
223
224
|
preparation?: ZLinkSerialWorkPreparation,
|
|
224
225
|
operationEnvelope = false
|
|
225
226
|
): Promise<T> {
|
|
226
227
|
if (this.closed) throw new Error('The serial execution queue is closed.');
|
|
227
|
-
const lane = options
|
|
228
|
+
const lane = options?.lane ?? 'application';
|
|
228
229
|
const target = lane === 'application' ? this.application : this.lifecycle;
|
|
229
|
-
let settled = false;
|
|
230
230
|
let released = false;
|
|
231
231
|
let resolveResult!: (value: T | PromiseLike<T>) => void;
|
|
232
232
|
let rejectResult!: (reason?: unknown) => void;
|
|
@@ -246,16 +246,6 @@ export class ZLinkSerialExecutionQueue {
|
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
248
|
};
|
|
249
|
-
const resolve = (value: T): void => {
|
|
250
|
-
if (settled) return;
|
|
251
|
-
settled = true;
|
|
252
|
-
resolveResult(value);
|
|
253
|
-
};
|
|
254
|
-
const reject = (reason: unknown): void => {
|
|
255
|
-
if (settled) return;
|
|
256
|
-
settled = true;
|
|
257
|
-
rejectResult(reason);
|
|
258
|
-
};
|
|
259
249
|
const record: SerialWorkRecord<T> = {
|
|
260
250
|
acceptedSequence: 0n,
|
|
261
251
|
lane,
|
|
@@ -264,11 +254,11 @@ export class ZLinkSerialExecutionQueue {
|
|
|
264
254
|
context,
|
|
265
255
|
preparation,
|
|
266
256
|
preparationState: preparation === undefined ? 'ready' : 'idle',
|
|
267
|
-
resolve,
|
|
268
|
-
reject,
|
|
257
|
+
resolve: resolveResult,
|
|
258
|
+
reject: rejectResult,
|
|
269
259
|
release,
|
|
270
260
|
fail: (reason) => {
|
|
271
|
-
|
|
261
|
+
rejectResult(reason);
|
|
272
262
|
release();
|
|
273
263
|
}
|
|
274
264
|
};
|
|
@@ -283,16 +273,17 @@ export class ZLinkSerialExecutionQueue {
|
|
|
283
273
|
release();
|
|
284
274
|
throw error;
|
|
285
275
|
}
|
|
286
|
-
options
|
|
287
|
-
options
|
|
276
|
+
options?.onAdmitted?.();
|
|
277
|
+
options?.onWithdrawable?.(() => {
|
|
288
278
|
const index = target.records.indexOf(record as SerialWorkRecord<unknown>);
|
|
289
279
|
if (index < 0) return false;
|
|
290
|
-
target.records.
|
|
280
|
+
target.records.copyWithin(index, index + 1);
|
|
281
|
+
target.records.length -= 1;
|
|
291
282
|
record.preparationController?.abort(
|
|
292
283
|
new Error('Durable record transferred to another handoff.')
|
|
293
284
|
);
|
|
294
285
|
record.preparation?.cancel();
|
|
295
|
-
|
|
286
|
+
resolveResult(undefined as T);
|
|
296
287
|
release();
|
|
297
288
|
return true;
|
|
298
289
|
});
|
|
@@ -300,27 +291,36 @@ export class ZLinkSerialExecutionQueue {
|
|
|
300
291
|
return result;
|
|
301
292
|
}
|
|
302
293
|
|
|
303
|
-
|
|
294
|
+
scheduleDrain(): void {
|
|
304
295
|
if (this.sharedOwner !== undefined) {
|
|
305
296
|
if (this.activeRecord !== undefined) return;
|
|
306
297
|
// Ready membership in the existing owner queue is the only notification state.
|
|
307
298
|
if (this.ownerMembership !== undefined) return;
|
|
308
|
-
|
|
299
|
+
{
|
|
300
|
+
// Block-scoped captures keep early returns free of a V8 function context.
|
|
301
|
+
const mailbox = this;
|
|
302
|
+
mailbox.enqueueMailboxTurn(() => mailbox.consumeMailbox());
|
|
303
|
+
}
|
|
309
304
|
return;
|
|
310
305
|
}
|
|
311
306
|
const consumer = this.consumer!;
|
|
312
307
|
if (consumer.scheduled || consumer.running) return;
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
308
|
+
{
|
|
309
|
+
// Same block-scoped capture as the mailbox branch above.
|
|
310
|
+
const queue = this;
|
|
311
|
+
const scheduledConsumer = consumer;
|
|
312
|
+
scheduledConsumer.scheduled = true;
|
|
313
|
+
startOutsideStateLane(() =>
|
|
314
|
+
queueMicrotask(() => {
|
|
315
|
+
scheduledConsumer.scheduled = false;
|
|
316
|
+
void queue.drain();
|
|
317
|
+
})
|
|
318
|
+
);
|
|
319
|
+
}
|
|
320
320
|
}
|
|
321
321
|
|
|
322
322
|
/** Notifications carry no payload, admission sequence, result Promise, or host permit. */
|
|
323
|
-
|
|
323
|
+
enqueueMailboxTurn(operation: () => void): void {
|
|
324
324
|
const entry: SerialWorkRecord<unknown> = {
|
|
325
325
|
acceptedSequence: 0n,
|
|
326
326
|
lane: 'application',
|
|
@@ -341,14 +341,13 @@ export class ZLinkSerialExecutionQueue {
|
|
|
341
341
|
|
|
342
342
|
/** Called only by the shared scheduler's consumer, never by a producer. */
|
|
343
343
|
private consumeMailbox(): void {
|
|
344
|
-
const
|
|
345
|
-
if (
|
|
344
|
+
const record = this.selectNext();
|
|
345
|
+
if (record === undefined) {
|
|
346
346
|
if (!this.hasPendingWork) this.resolveIdleWaiters();
|
|
347
347
|
return;
|
|
348
348
|
}
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
this.takeSelected(selection);
|
|
349
|
+
if (!this.prepareSelected(record)) return;
|
|
350
|
+
this.takeSelected(record);
|
|
352
351
|
if (record.preparationState === 'failed') {
|
|
353
352
|
record.preparation?.cancel();
|
|
354
353
|
record.fail(record.preparationError);
|
|
@@ -365,14 +364,18 @@ export class ZLinkSerialExecutionQueue {
|
|
|
365
364
|
terminal = Promise.reject(error);
|
|
366
365
|
}
|
|
367
366
|
void terminal.then(
|
|
368
|
-
(value) => this.finishMailbox(record,
|
|
369
|
-
(error) => this.finishMailbox(record,
|
|
367
|
+
(value) => this.finishMailbox(record, record.resolve, value),
|
|
368
|
+
(error) => this.finishMailbox(record, record.reject, error)
|
|
370
369
|
);
|
|
371
370
|
}
|
|
372
371
|
|
|
373
|
-
private finishMailbox(
|
|
372
|
+
private finishMailbox(
|
|
373
|
+
record: SerialWorkRecord<unknown>,
|
|
374
|
+
settle: (value: unknown) => void,
|
|
375
|
+
value: unknown
|
|
376
|
+
): void {
|
|
374
377
|
this.enqueueMailboxTurn(() => {
|
|
375
|
-
settle();
|
|
378
|
+
settle(value);
|
|
376
379
|
record.release();
|
|
377
380
|
record.preparation?.cancel();
|
|
378
381
|
this.activeRecord = undefined;
|
|
@@ -381,21 +384,20 @@ export class ZLinkSerialExecutionQueue {
|
|
|
381
384
|
});
|
|
382
385
|
}
|
|
383
386
|
|
|
384
|
-
|
|
387
|
+
async drain(): Promise<void> {
|
|
385
388
|
const consumer = this.consumer!;
|
|
386
389
|
if (consumer.running) return;
|
|
387
390
|
consumer.running = true;
|
|
388
391
|
let waitingForPreparation = false;
|
|
389
392
|
try {
|
|
390
393
|
for (;;) {
|
|
391
|
-
const
|
|
392
|
-
if (
|
|
393
|
-
|
|
394
|
-
if (!this.prepareSelected(selection)) {
|
|
394
|
+
const record = this.selectNext();
|
|
395
|
+
if (record === undefined) break;
|
|
396
|
+
if (!this.prepareSelected(record)) {
|
|
395
397
|
waitingForPreparation = true;
|
|
396
398
|
break;
|
|
397
399
|
}
|
|
398
|
-
this.takeSelected(
|
|
400
|
+
this.takeSelected(record);
|
|
399
401
|
if (record.preparationState === 'failed') {
|
|
400
402
|
record.preparation?.cancel();
|
|
401
403
|
record.fail(record.preparationError);
|
|
@@ -448,60 +450,51 @@ export class ZLinkSerialExecutionQueue {
|
|
|
448
450
|
}
|
|
449
451
|
}
|
|
450
452
|
|
|
451
|
-
private prepareSelected(
|
|
452
|
-
readonly lane: ZLinkSerialWorkLane;
|
|
453
|
-
readonly record: SerialWorkRecord<unknown>;
|
|
454
|
-
}): boolean {
|
|
453
|
+
private prepareSelected(record: SerialWorkRecord<unknown>): boolean {
|
|
455
454
|
if (
|
|
456
|
-
|
|
455
|
+
record.lane === 'lifecycle' &&
|
|
457
456
|
this.application.records.length > 0 &&
|
|
458
457
|
!this.cancelPreparationForRearbitration(this.application.records[0]!)
|
|
459
458
|
)
|
|
460
459
|
return false;
|
|
461
|
-
const record = selection.record;
|
|
462
460
|
if (record.preparationState === 'idle') this.startPreparation(record);
|
|
463
461
|
return record.preparationState !== 'pending' && record.preparationState !== 'canceling';
|
|
464
462
|
}
|
|
465
463
|
|
|
466
|
-
|
|
467
|
-
| {
|
|
468
|
-
readonly lane: ZLinkSerialWorkLane;
|
|
469
|
-
readonly record: SerialWorkRecord<unknown>;
|
|
470
|
-
}
|
|
471
|
-
| undefined {
|
|
464
|
+
selectNext(): SerialWorkRecord<unknown> | undefined {
|
|
472
465
|
const lifecycleOwner = this.activeLifecycle?.context as ZLinkSerialLifecycleContext | undefined;
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
466
|
+
let applicationRecord: SerialWorkRecord<unknown> | undefined;
|
|
467
|
+
if (lifecycleOwner === undefined) {
|
|
468
|
+
applicationRecord = this.application.records[0];
|
|
469
|
+
} else {
|
|
470
|
+
// Capture only inside the lifecycle branch; the common path allocates no context.
|
|
471
|
+
const owner = lifecycleOwner;
|
|
472
|
+
applicationRecord = this.application.records.find((record) =>
|
|
473
|
+
owner.canExecuteApplication(record)
|
|
474
|
+
);
|
|
475
|
+
}
|
|
477
476
|
const applicationReady = applicationRecord !== undefined;
|
|
478
477
|
const lifecycleReady = this.activeLifecycle === undefined && this.lifecycle.records.length > 0;
|
|
479
478
|
if (!applicationReady && !lifecycleReady) return undefined;
|
|
480
479
|
if (!applicationReady) {
|
|
481
|
-
return
|
|
480
|
+
return this.lifecycle.records[0]!;
|
|
482
481
|
}
|
|
483
482
|
if (!lifecycleReady) {
|
|
484
|
-
return
|
|
483
|
+
return applicationRecord!;
|
|
485
484
|
}
|
|
486
485
|
if (!this.lifecycleDebt && this.lifecycleStreak < this.lifecycleBurstLimit) {
|
|
487
|
-
return
|
|
486
|
+
return this.lifecycle.records[0]!;
|
|
488
487
|
}
|
|
489
|
-
return
|
|
488
|
+
return applicationRecord!;
|
|
490
489
|
}
|
|
491
490
|
|
|
492
|
-
|
|
493
|
-
readonly lane: ZLinkSerialWorkLane;
|
|
494
|
-
readonly record: SerialWorkRecord<unknown>;
|
|
495
|
-
}): ZLinkSerialWorkRecord<unknown> {
|
|
491
|
+
takeSelected(selected: SerialWorkRecord<unknown>): ZLinkSerialWorkRecord<unknown> {
|
|
496
492
|
const record =
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
: this.takeApplication(selection.record);
|
|
500
|
-
if (record !== selection.record) {
|
|
493
|
+
selected.lane === 'lifecycle' ? this.takeLifecycle() : this.takeApplication(selected);
|
|
494
|
+
if (record !== selected) {
|
|
501
495
|
throw new Error('The selected serial work record changed before owner claim.');
|
|
502
496
|
}
|
|
503
|
-
if (
|
|
504
|
-
selection.record.mailbox.ownerMembership = undefined;
|
|
497
|
+
if (selected.mailbox !== undefined) selected.mailbox.ownerMembership = undefined;
|
|
505
498
|
return record;
|
|
506
499
|
}
|
|
507
500
|
|
|
@@ -515,12 +508,16 @@ export class ZLinkSerialExecutionQueue {
|
|
|
515
508
|
return record;
|
|
516
509
|
}
|
|
517
510
|
|
|
518
|
-
|
|
511
|
+
takeApplication(selected: SerialWorkRecord<unknown>): ZLinkSerialWorkRecord<unknown> {
|
|
519
512
|
this.lifecycleStreak = 0;
|
|
520
513
|
this.lifecycleDebt = false;
|
|
521
514
|
if (this.application.records[0] === selected) return this.application.records.shift()!;
|
|
522
515
|
const index = this.application.records.indexOf(selected);
|
|
523
|
-
|
|
516
|
+
// A missing record (index -1) still reaches the owner-claim fence in takeSelected.
|
|
517
|
+
const record = this.application.records.at(index)!;
|
|
518
|
+
this.application.records.copyWithin(index, index + 1);
|
|
519
|
+
this.application.records.length = Math.max(0, this.application.records.length - 1);
|
|
520
|
+
return record;
|
|
524
521
|
}
|
|
525
522
|
|
|
526
523
|
private startPreparation(record: SerialWorkRecord<unknown>): void {
|
|
@@ -580,8 +577,9 @@ export class ZLinkSerialExecutionQueue {
|
|
|
580
577
|
return performance.now() - (this.claimStartedAt ?? performance.now()) >= this.ownerTimeBudget;
|
|
581
578
|
}
|
|
582
579
|
|
|
583
|
-
|
|
584
|
-
for (
|
|
580
|
+
resolveIdleWaiters(): void {
|
|
581
|
+
for (let index = 0; index < this.idleWaiters.length; index++) this.idleWaiters[index]!();
|
|
582
|
+
this.idleWaiters.length = 0;
|
|
585
583
|
}
|
|
586
584
|
}
|
|
587
585
|
|
|
@@ -590,13 +588,13 @@ if (isStructuralGuardEnabled()) {
|
|
|
590
588
|
ZLinkSerialExecutionQueue.prototype.submit = function <T>(
|
|
591
589
|
this: ZLinkSerialExecutionQueue,
|
|
592
590
|
operation: () => Promise<T> | T,
|
|
593
|
-
options
|
|
591
|
+
options?: ZLinkSerialWorkOptions,
|
|
594
592
|
context?: unknown
|
|
595
593
|
): Promise<T> {
|
|
596
594
|
return guardStateLaneCompletion(
|
|
597
595
|
trackDiagnosticCompletion(
|
|
598
596
|
submit.call(this, operation, options, context) as Promise<T>,
|
|
599
|
-
`serial ${options
|
|
597
|
+
`serial ${options?.lane ?? 'application'} ${diagnosticWorkName(operation)}`
|
|
600
598
|
),
|
|
601
599
|
'serial completion'
|
|
602
600
|
);
|
|
@@ -606,13 +604,13 @@ if (isStructuralGuardEnabled()) {
|
|
|
606
604
|
ZLinkSerialExecutionQueue.prototype.submitPreAdmitted = function <T>(
|
|
607
605
|
this: ZLinkSerialExecutionQueue,
|
|
608
606
|
operation: () => Promise<T> | T,
|
|
609
|
-
options
|
|
607
|
+
options?: ZLinkSerialWorkOptions,
|
|
610
608
|
context?: unknown
|
|
611
609
|
): Promise<T> {
|
|
612
610
|
return guardStateLaneCompletion(
|
|
613
611
|
trackDiagnosticCompletion(
|
|
614
612
|
submitPreAdmitted.call(this, operation, options, context) as Promise<T>,
|
|
615
|
-
`serial ${options
|
|
613
|
+
`serial ${options?.lane ?? 'application'} ${diagnosticWorkName(operation)}`
|
|
616
614
|
),
|
|
617
615
|
'serial completion'
|
|
618
616
|
);
|
|
@@ -637,7 +635,7 @@ if (isStructuralGuardEnabled()) {
|
|
|
637
635
|
ZLinkSerialExecutionQueue.prototype.admitDurablePrefix = function <T>(
|
|
638
636
|
this: ZLinkSerialExecutionQueue,
|
|
639
637
|
operation: () => Promise<T> | T,
|
|
640
|
-
options
|
|
638
|
+
options?: ZLinkSerialWorkOptions,
|
|
641
639
|
context?: unknown,
|
|
642
640
|
preparation?: ZLinkSerialWorkPreparation
|
|
643
641
|
): Promise<T> {
|