Skip to content

Commit a0507e4

Browse files
committed
parallelize async extension start
1 parent 8a31ea3 commit a0507e4

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

jupyter_server/extension/manager.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,12 @@ def load(self, serverapp):
168168
loader = self._get_loader()
169169
return loader(serverapp)
170170

171-
def start(self, serverapp):
171+
async def start(self, serverapp):
172172
"""Call's the extensions 'start' hook where it can
173173
start (possibly async) tasks _after_ the event loop is running.
174174
"""
175175
starter = self._get_starter()
176-
return starter(serverapp)
176+
return await starter(serverapp)
177177

178178

179179
class ExtensionPackage(LoggingConfigurable):
@@ -247,10 +247,10 @@ def load_point(self, point_name, serverapp):
247247
point = self.extension_points[point_name]
248248
return point.load(serverapp)
249249

250-
def start_point(self, point_name, serverapp):
250+
async def start_point(self, point_name, serverapp):
251251
"""Load an extension point."""
252252
point = self.extension_points[point_name]
253-
return point.start(serverapp)
253+
return await point.start(serverapp)
254254

255255
def link_all_points(self, serverapp):
256256
"""Link all extension points."""
@@ -447,8 +447,7 @@ async def start_all_extensions(self):
447447
"""Start all enabled extensions."""
448448
# Sort the extension names to enforce deterministic loading
449449
# order.
450-
for name in self.sorted_extensions:
451-
await self.start_extension(name)
450+
await multi([self.start_extension(name) for name in self.sorted_extensions])
452451

453452
async def stop_all_extensions(self):
454453
"""Call the shutdown hooks in all extensions."""

tests/extension/mockextensions/app.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ class MockExtensionApp(ExtensionAppJinjaMixin, ExtensionApp):
6565
}
6666
}
6767

68+
async def _start_jupyter_server_extension(self, serverapp):
69+
self.started = True
70+
6871
@staticmethod
6972
def get_extension_package():
7073
return "tests.extension.mockextensions"

0 commit comments

Comments
 (0)