Skip to content

Commit b999642

Browse files
committed
fix kernel change api
1 parent 238c902 commit b999642

File tree

1 file changed

+42
-10
lines changed

1 file changed

+42
-10
lines changed

Views/Notebook/Notebook.wlx

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -636,17 +636,49 @@ Component[OptionsPattern[]] := With[{
636636
];
637637
]],
638638

639-
"ChangeKernel" -> Function[Null,
640-
641-
If[Length[ReleaseHold @ kernels] == 0, WebUISubmit[Alert["No Kernels are available"], $Client]; Return[] ];
642-
requestKernel[notebook, kernels, modals, $Client, Function[Null,
643-
(*/* reset all links */*)
639+
"ChangeKernel" -> Function[p, Module[{kernel, client, payload = <||>},
640+
If[AssociationQ[p], payload = p];
641+
642+
client = Lookup[payload, "Client", $Client];
643+
644+
If[Length[ReleaseHold @ kernels] == 0, WebUISubmit[Alert["No Kernels are available"], client]; Return[] ];
645+
646+
notebook["Evaluator"] = .;
647+
notebook["WebSocketQ"] = False;
648+
WebUISubmit[UINotebook["CreateServer"], client];
649+
650+
With[{cli = client},
651+
652+
If[KeyExistsQ[payload, "Kernel"],
653+
654+
notebook["Evaluator"] = payload["Kernel"]["Container"];
655+
656+
If[TrueQ[payload["Kernel"]["ContainerReadyQ"]],
657+
EventFire[notebook, "AquairedKernel", True];
658+
Then[checkWSLink[notebook, cli, secret, log], Function[Null,
659+
Echo["Kernel was changed!"];
660+
661+
ClearAll[client];
662+
ClearAll[kernel]; ClearAll[payload];
663+
] ];
664+
,
665+
WebUISubmit[Alert["Initialization is not complete"], cli];
666+
];
667+
668+
,
669+
670+
requestKernel[notebook, kernels, modals, cli, Function[Null,
671+
Then[checkWSLink[notebook, cli, secret, log], Function[Null,
672+
Echo["Kernel was changed!"];
673+
674+
ClearAll[client];
675+
ClearAll[kernel]; ClearAll[payload];
676+
] ];
677+
]];
644678

645-
notebook["Evaluator"] = .;
646-
notebook["WebSocketQ"] = False;
647-
WebUISubmit[UINotebook["CreateServer"], $Client];
648-
]];
649-
],
679+
];
680+
];
681+
] ],
650682

651683
"RestartKernel" -> Function[Null,
652684
Echo["Manual Kernel restart"];

0 commit comments

Comments
 (0)