simlplify read from channel loop

main thread ui updates in disconnect()
This commit is contained in:
neon443
2025-06-26 12:32:18 +01:00
parent 42883c4ac9
commit 319373682c
3 changed files with 10 additions and 11 deletions

View File

@@ -5,7 +5,7 @@
// Created by neon443 on 06/06/2025. // Created by neon443 on 06/06/2025.
// //
VERSION = 1.1 VERSION = 1.1.1
BUILD = 1 BUILD = 1
// Configuration settings file format documentation can be found at: // Configuration settings file format documentation can be found at:

View File

@@ -127,8 +127,10 @@ class SSHHandler: @unchecked Sendable, ObservableObject {
} }
func disconnect() { func disconnect() {
withAnimation { self.state = .idle } DispatchQueue.main.async {
withAnimation { self.testSuceeded = nil } withAnimation { self.state = .idle }
withAnimation { self.testSuceeded = nil }
}
//send eof if open //send eof if open
if ssh_channel_is_open(channel) == 1 { if ssh_channel_is_open(channel) == 1 {

View File

@@ -31,15 +31,12 @@ final class SSHTerminalView: TerminalView, Sendable, @preconcurrency TerminalVie
while handler.connected { while handler.connected {
if let read = handler.readFromChannel() { if let read = handler.readFromChannel() {
Task { [weak self] in // Task { [weak self] in
guard let self else { return } // guard let self else { return }
await MainActor.run { Task { @MainActor in
CATransaction.begin() self.feed(text: read)
CATransaction.setDisableActions(true)
feed(text: read)
CATransaction.commit()
} }
} // }
} else { } else {
try? await Task.sleep(nanoseconds: 10_000_000) //10ms try? await Task.sleep(nanoseconds: 10_000_000) //10ms
} }