Skip to content

Commit 5b291a7

Browse files
authored
Fix handling of initial ready promise (#854)
1 parent 97966b0 commit 5b291a7

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

jupyter_client/manager.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,12 @@ def in_pending_state(method: F) -> F:
6767
@functools.wraps(method)
6868
async def wrapper(self, *args, **kwargs):
6969
# Create a future for the decorated method
70-
try:
71-
self._ready = Future()
72-
except RuntimeError:
73-
# No event loop running, use concurrent future
74-
self._ready = CFuture()
70+
if self._attempted_start:
71+
try:
72+
self._ready = Future()
73+
except RuntimeError:
74+
# No event loop running, use concurrent future
75+
self._ready = CFuture()
7576
try:
7677
# call wrapped method, await, and set the result or exception.
7778
out = await method(self, *args, **kwargs)
@@ -119,6 +120,7 @@ def _emit(self, *, action: str) -> None:
119120
def __init__(self, *args, **kwargs):
120121
super().__init__(**kwargs)
121122
self._shutdown_status = _ShutdownStatus.Unset
123+
self._attempted_start = False
122124
# Create a place holder future.
123125
try:
124126
asyncio.get_running_loop()
@@ -408,6 +410,7 @@ async def _async_start_kernel(self, **kw: t.Any) -> None:
408410
keyword arguments that are passed down to build the kernel_cmd
409411
and launching the kernel (e.g. Popen kwargs).
410412
"""
413+
self._attempted_start = True
411414
kernel_cmd, kw = await self._async_pre_start_kernel(**kw)
412415

413416
# launch the kernel subprocess

0 commit comments

Comments
 (0)