mirror of
https://github.com/wavetermdev/waveterm.git
synced 2024-12-21 16:38:23 +01:00
fix block controller status (add version) (#1430)
This commit is contained in:
parent
f858d3ba0f
commit
ac8dc25ead
@ -311,12 +311,18 @@ class TermViewModel implements ViewModel {
|
||||
}
|
||||
|
||||
updateShellProcStatus(fullStatus: BlockControllerRuntimeStatus) {
|
||||
globalStore.set(this.shellProcFullStatus, fullStatus);
|
||||
const status = fullStatus?.shellprocstatus ?? "init";
|
||||
if (status == "running") {
|
||||
this.termRef.current?.setIsRunning?.(true);
|
||||
} else {
|
||||
this.termRef.current?.setIsRunning?.(false);
|
||||
if (fullStatus == null) {
|
||||
return;
|
||||
}
|
||||
const curStatus = globalStore.get(this.shellProcFullStatus);
|
||||
if (curStatus == null || curStatus.version < fullStatus.version) {
|
||||
globalStore.set(this.shellProcFullStatus, fullStatus);
|
||||
const status = fullStatus?.shellprocstatus ?? "init";
|
||||
if (status == "running") {
|
||||
this.termRef.current?.setIsRunning?.(true);
|
||||
} else {
|
||||
this.termRef.current?.setIsRunning?.(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
1
frontend/types/gotypes.d.ts
vendored
1
frontend/types/gotypes.d.ts
vendored
@ -56,6 +56,7 @@ declare global {
|
||||
// blockcontroller.BlockControllerRuntimeStatus
|
||||
type BlockControllerRuntimeStatus = {
|
||||
blockid: string;
|
||||
version: number;
|
||||
shellprocstatus?: string;
|
||||
shellprocconnname?: string;
|
||||
shellprocexitcode: number;
|
||||
|
@ -79,10 +79,12 @@ type BlockController struct {
|
||||
ShellProcStatus string
|
||||
ShellProcExitCode int
|
||||
RunLock *atomic.Bool
|
||||
StatusVersion int
|
||||
}
|
||||
|
||||
type BlockControllerRuntimeStatus struct {
|
||||
BlockId string `json:"blockid"`
|
||||
Version int `json:"version"`
|
||||
ShellProcStatus string `json:"shellprocstatus,omitempty"`
|
||||
ShellProcConnName string `json:"shellprocconnname,omitempty"`
|
||||
ShellProcExitCode int `json:"shellprocexitcode"`
|
||||
@ -97,6 +99,8 @@ func (bc *BlockController) WithLock(f func()) {
|
||||
func (bc *BlockController) GetRuntimeStatus() *BlockControllerRuntimeStatus {
|
||||
var rtn BlockControllerRuntimeStatus
|
||||
bc.WithLock(func() {
|
||||
bc.StatusVersion++
|
||||
rtn.Version = bc.StatusVersion
|
||||
rtn.BlockId = bc.BlockId
|
||||
rtn.ShellProcStatus = bc.ShellProcStatus
|
||||
if bc.ShellProc != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user