@@ -3321,7 +3321,7 @@ class Server::WorkerService final: public Service,
33213321 }
33223322
33233323 kj::Own<WorkerStubChannel> loadIsolate (uint loaderChannel,
3324- kj::String name,
3324+ kj::Maybe<kj:: String> name,
33253325 kj::Function<kj::Promise<DynamicWorkerSource>()> fetchSource) override ;
33263326
33273327 // ---------------------------------------------------------------------------
@@ -3865,15 +3865,16 @@ class Server::WorkerLoaderNamespace: public kj::Refcounted {
38653865 }
38663866
38673867 kj::Own<WorkerStubChannel> loadIsolate (
3868- kj::String name, kj::Function<kj::Promise<DynamicWorkerSource>()> fetchSource) {
3868+ kj::Maybe<kj::String> name, kj::Function<kj::Promise<DynamicWorkerSource>()> fetchSource) {
3869+ auto actualName = kj::mv (name).orDefault ([] { return randomUUID (kj::none); });
38693870 return isolates
3870- .findOrCreate (name ,
3871+ .findOrCreate (actualName ,
38713872 [&]() -> decltype (isolates)::Entry {
38723873 // This name isn't actually used in any maps nor is it ever revealed back to the app, but it
38733874 // may be used in error logs.
38743875 auto isolateName = kj::str (namespaceName, ' :' , name);
38753876
3876- return {.key = kj::mv (name ),
3877+ return {.key = kj::mv (actualName ),
38773878 .value = kj::rc<WorkerStubImpl>(server, kj::mv (isolateName), kj::mv (fetchSource))};
38783879 })
38793880 .addRef ()
@@ -4147,7 +4148,7 @@ void Server::unlinkWorkerLoaders() {
41474148}
41484149
41494150kj::Own<WorkerStubChannel> Server::WorkerService::loadIsolate (uint loaderChannel,
4150- kj::String name,
4151+ kj::Maybe<kj:: String> name,
41514152 kj::Function<kj::Promise<DynamicWorkerSource>()> fetchSource) {
41524153 auto & channels =
41534154 KJ_REQUIRE_NONNULL (ioChannels.tryGet <LinkedIoChannels>(), " link() has not been called" );
0 commit comments