From 3f2c92cd91b1d31e30a1c04c3f4d44ccf85492e8 Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Tue, 24 Jun 2025 09:48:33 +0100 Subject: [PATCH] massively optimised reading from ssh, reduced cpu usage and energy usage --- ShhShell.xcodeproj/project.pbxproj | 6 ++++++ ShhShell/SSH/SSHHandler.swift | 2 +- ShhShell/Views/Terminal/SSHTerminalView.swift | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ShhShell.xcodeproj/project.pbxproj b/ShhShell.xcodeproj/project.pbxproj index 23d6933..6612f2f 100644 --- a/ShhShell.xcodeproj/project.pbxproj +++ b/ShhShell.xcodeproj/project.pbxproj @@ -615,6 +615,9 @@ MARKETING_VERSION = "$(VERSION)"; PRODUCT_BUNDLE_IDENTIFIER = com.neon443.ShhShell; PRODUCT_NAME = "$(TARGET_NAME)"; + REGISTER_APP_GROUPS = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 5.0; @@ -648,6 +651,9 @@ MARKETING_VERSION = "$(VERSION)"; PRODUCT_BUNDLE_IDENTIFIER = com.neon443.ShhShell; PRODUCT_NAME = "$(TARGET_NAME)"; + REGISTER_APP_GROUPS = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 5.0; diff --git a/ShhShell/SSH/SSHHandler.swift b/ShhShell/SSH/SSHHandler.swift index 0c17db3..db39b80 100644 --- a/ShhShell/SSH/SSHHandler.swift +++ b/ShhShell/SSH/SSHHandler.swift @@ -342,7 +342,7 @@ class SSHHandler: @unchecked Sendable, ObservableObject { } var buffer: [CChar] = Array(repeating: 0, count: 512) - let nbytes = ssh_channel_read(channel, &buffer, UInt32(buffer.count), 0) + let nbytes = ssh_channel_read_nonblocking(channel, &buffer, UInt32(buffer.count), 0) guard nbytes > 0 else { return nil } diff --git a/ShhShell/Views/Terminal/SSHTerminalView.swift b/ShhShell/Views/Terminal/SSHTerminalView.swift index beaea83..ab3f9a5 100644 --- a/ShhShell/Views/Terminal/SSHTerminalView.swift +++ b/ShhShell/Views/Terminal/SSHTerminalView.swift @@ -35,7 +35,7 @@ final class SSHTerminalView: TerminalView, Sendable, @preconcurrency TerminalVie await self.feed(text: read) } } else { - usleep(1_000_000) + usleep(100_000) } // self?.setNeedsDisplay() }