diff --git a/ipython-kernel/src/IHaskell/IPython/EasyKernel.hs b/ipython-kernel/src/IHaskell/IPython/EasyKernel.hs index b2bb5d5e..093ed4c2 100644 --- a/ipython-kernel/src/IHaskell/IPython/EasyKernel.hs +++ b/ipython-kernel/src/IHaskell/IPython/EasyKernel.hs @@ -163,7 +163,12 @@ replyTo :: MonadIO m -> Message -> MessageHeader -> m Message -replyTo config _ _ KernelInfoRequest{} replyHeader = +replyTo config _ interface KernelInfoRequest{} replyHeader = do + let send = writeChan (iopubChannel interface) + + idleHeader <- dupHeader replyHeader StatusMessage + liftIO . send $ PublishStatus idleHeader Idle + return KernelInfoReply { header = replyHeader diff --git a/main/Main.hs b/main/Main.hs index 25764b80..dc3b48f1 100644 --- a/main/Main.hs +++ b/main/Main.hs @@ -255,7 +255,13 @@ replyTo :: ZeroMQInterface -> Message -> MessageHeader -> KernelState -> Interpr -- Reply to kernel info requests with a kernel info reply. No computation needs to be done, as a -- kernel info reply is a static object (all info is hard coded into the representation of that -- message type). -replyTo _ KernelInfoRequest{} replyHeader state = +replyTo interface KernelInfoRequest{} replyHeader state = do + let send msg = liftIO $ writeChan (iopubChannel interface) msg + + -- Notify the frontend that the Kernel is idle + idleHeader <- liftIO $ dupHeader replyHeader StatusMessage + send $ PublishStatus idleHeader Idle + return (state, KernelInfoReply { header = replyHeader