From 939108b27a8a702d00cf9ba7d8ea375a3bdccb62 Mon Sep 17 00:00:00 2001 From: Danny Canter Date: Mon, 27 Oct 2025 09:28:25 -0700 Subject: [PATCH] VZVirtualMachineInstance: Move some extensions around (#364) Move the implemention of VirtualMachineInstance to a standalone extension and all the other helper methods outside of this. --- .../VZVirtualMachineInstance.swift | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/Sources/Containerization/VZVirtualMachineInstance.swift b/Sources/Containerization/VZVirtualMachineInstance.swift index 061161e8..e98a244e 100644 --- a/Sources/Containerization/VZVirtualMachineInstance.swift +++ b/Sources/Containerization/VZVirtualMachineInstance.swift @@ -25,7 +25,7 @@ import NIOPosix import Synchronization import Virtualization -struct VZVirtualMachineInstance: VirtualMachineInstance, Sendable { +struct VZVirtualMachineInstance: Sendable { typealias Agent = Vminitd /// Attached mounts on the virtual machine, organized by metadata ID. @@ -102,26 +102,7 @@ struct VZVirtualMachineInstance: VirtualMachineInstance, Sendable { } } -extension VZVirtualMachineInstance { - func vzStateToInstanceState() -> VirtualMachineInstanceState { - self.queue.sync { - let state: VirtualMachineInstanceState - switch self.vm.state { - case .starting: - state = .starting - case .running: - state = .running - case .stopping: - state = .stopping - case .stopped: - state = .stopped - default: - state = .unknown - } - return state - } - } - +extension VZVirtualMachineInstance: VirtualMachineInstance { func start() async throws { try await lock.withLock { _ in guard self.state == .stopped else { @@ -191,9 +172,7 @@ extension VZVirtualMachineInstance { let conn = try await dial(Vminitd.port) return Vminitd(connection: conn, group: self.group) } -} -extension VZVirtualMachineInstance { func dial(_ port: UInt32) async throws -> FileHandle { try await vm.connect( queue: queue, @@ -220,6 +199,27 @@ extension VZVirtualMachineInstance { port: port ) } +} + +extension VZVirtualMachineInstance { + func vzStateToInstanceState() -> VirtualMachineInstanceState { + self.queue.sync { + let state: VirtualMachineInstanceState + switch self.vm.state { + case .starting: + state = .starting + case .running: + state = .running + case .stopping: + state = .stopping + case .stopped: + state = .stopped + default: + state = .unknown + } + return state + } + } func prestart() async throws { if self.config.rosetta {