@@ -3184,6 +3184,8 @@ struct Worker::Actor::Impl {
3184
3184
kj::Maybe<jsg::JsRef<jsg::JsValue>> transient;
3185
3185
kj::Maybe<kj::Own<ActorCacheInterface>> actorCache;
3186
3186
3187
+ kj::Maybe<rpc::Container::Client> container;
3188
+
3187
3189
struct NoClass {};
3188
3190
struct Initializing {};
3189
3191
@@ -3344,10 +3346,12 @@ struct Worker::Actor::Impl {
3344
3346
kj::Own<ActorObserver> metricsParam,
3345
3347
kj::Maybe<kj::Own<HibernationManager>> manager,
3346
3348
kj::Maybe<uint16_t >& hibernationEventType,
3349
+ kj::Maybe<rpc::Container::Client> container,
3347
3350
kj::PromiseFulfillerPair<void > paf = kj::newPromiseAndFulfiller<void >())
3348
3351
: actorId(kj::mv(actorId)),
3349
3352
makeStorage(kj::mv(makeStorage)),
3350
3353
metrics(kj::mv(metricsParam)),
3354
+ container(kj::mv(container)),
3351
3355
hooks(loopback->addRef (), timerChannel, *metrics),
3352
3356
inputGate(hooks),
3353
3357
outputGate(hooks),
@@ -3404,12 +3408,13 @@ Worker::Actor::Actor(const Worker& worker,
3404
3408
TimerChannel& timerChannel,
3405
3409
kj::Own<ActorObserver> metrics,
3406
3410
kj::Maybe<kj::Own<HibernationManager>> manager,
3407
- kj::Maybe<uint16_t > hibernationEventType)
3411
+ kj::Maybe<uint16_t > hibernationEventType,
3412
+ kj::Maybe<rpc::Container::Client> container)
3408
3413
: worker(kj::atomicAddRef(worker)),
3409
3414
tracker(tracker.map([](RequestTracker& tracker) { return tracker.addRef (); })) {
3410
3415
impl = kj::heap<Impl>(*this , lock, kj::mv (actorId), hasTransient, kj::mv (makeActorCache),
3411
3416
kj::mv (makeStorage), kj::mv (loopback), timerChannel, kj::mv (metrics), kj::mv (manager),
3412
- hibernationEventType);
3417
+ hibernationEventType, kj::mv (container) );
3413
3418
3414
3419
KJ_IF_SOME (c, className) {
3415
3420
KJ_IF_SOME (cls, lock.getWorker ().impl ->actorClasses .find (c)) {
@@ -3432,7 +3437,8 @@ void Worker::Actor::ensureConstructed(IoContext& context) {
3432
3437
KJ_IF_SOME (c, impl->actorCache ) {
3433
3438
storage = impl->makeStorage (lock, worker->getIsolate ().getApi (), *c);
3434
3439
}
3435
- auto handler = info.cls (lock, jsg::alloc<api::DurableObjectState>(cloneId (), kj::mv (storage)),
3440
+ auto handler = info.cls (lock,
3441
+ jsg::alloc<api::DurableObjectState>(cloneId (), kj::mv (storage), kj::mv (impl->container )),
3436
3442
KJ_ASSERT_NONNULL (lock.getWorker ().impl ->env ).addRef (js));
3437
3443
3438
3444
// HACK: We set handler.env to undefined because we already passed the real env into the
0 commit comments