Skip to content

Commit 5ea96e0

Browse files
committed
Fix the last concurrency errors
1 parent 6cb1d0f commit 5ea96e0

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

Sources/signal-handling-tests-helper/ManualDispatchMemTest.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,28 @@ private class MemWitness {
1515
}
1616

1717
deinit {
18-
ManualDispatchMemTest.logger?.debug("Deinit memory witness")
18+
ManualDispatchMemTest.unsafeLogger?.debug("Deinit memory witness")
1919
}
2020

2121
}
2222

2323
struct ManualDispatchMemTest : ParsableCommand {
2424

25-
static var logger: Logger?
25+
/* Only modified when the program starts. */
26+
static nonisolated(unsafe) var unsafeLogger: Logger?
2627

2728
func run() throws {
2829
LoggingSystem.bootstrap{ _ in CLTLogger(multilineMode: .allMultiline) }
2930

3031
var logger = Logger(label: "main")
3132
logger.logLevel = .trace
32-
Self.logger = logger /* We must do this to be able to use the logger from the C handler. */
33+
Self.unsafeLogger = logger /* We must do this to be able to use the logger from the C handler. */
3334
Conf[rootValueFor: \.signalHandling.logger]?.logLevel = .trace
3435

3536
let signal = Signal.interrupt
3637
logger.info("Process started; monitored signal is \(signal)")
3738

38-
try Sigaction(handler: .ansiC({ _ in Self.logger?.debug("In sigaction handler") })).install(on: signal)
39+
try Sigaction(handler: .ansiC({ _ in Self.unsafeLogger?.debug("In sigaction handler") })).install(on: signal)
3940

4041
let memWitness = MemWitness()
4142
let s = DispatchSource.makeSignalSource(signal: signal.rawValue)

Sources/signal-handling-tests-helper/ManualTest.swift

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import SignalHandling
1111

1212
struct ManualTest : ParsableCommand {
1313

14-
static var logger: Logger?
14+
/* Only modified when the program starts. */
15+
static nonisolated(unsafe) var unsafeLogger: Logger?
1516

1617
enum DelayMode : String, ExpressibleByArgument {
1718
case unsig
@@ -30,14 +31,14 @@ struct ManualTest : ParsableCommand {
3031

3132
var logger = Logger(label: "main")
3233
logger.logLevel = .trace
33-
Self.logger = logger /* We must do this to be able to use the logger from the C handler. */
34+
Self.unsafeLogger = logger /* We must do this to be able to use the logger from the C handler. */
3435
Conf[rootValueFor: \.signalHandling.logger]?.logLevel = .trace
3536

36-
try Sigaction(handler: .ansiC({ _ in Self.logger?.debug("In libxct-test-helper sigaction handler for interrupt") })).install(on: .interrupt)
37-
try Sigaction(handler: .ansiC({ _ in Self.logger?.debug("In libxct-test-helper sigaction handler for terminated") })).install(on: .terminated)
37+
try Sigaction(handler: .ansiC({ _ in Self.unsafeLogger?.debug("In libxct-test-helper sigaction handler for interrupt") })).install(on: .interrupt)
38+
try Sigaction(handler: .ansiC({ _ in Self.unsafeLogger?.debug("In libxct-test-helper sigaction handler for terminated") })).install(on: .terminated)
3839

3940
let s = DispatchSource.makeSignalSource(signal: Signal.terminated.rawValue)
40-
s.setEventHandler(handler: { Self.logger?.debug("In libxct-test-helper dispatch source handler for terminated") })
41+
s.setEventHandler(handler: { Self.unsafeLogger?.debug("In libxct-test-helper dispatch source handler for terminated") })
4142
s.activate()
4243

4344
let delayedSignal = Signal.terminated

Tests/SignalHandlingTests/SignalHandlingTests.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Foundation
22
import XCTest
33

44
import CLTLogger
5+
import GlobalConfModule
56
import Logging
67

78
@testable import SignalHandling
@@ -16,7 +17,7 @@ final class SignalHandlingTests : XCTestCase {
1617

1718
/* Setup the logger – Not needed for most tests as we launch an external executable to test. */
1819
LoggingSystem.bootstrap{ _ in CLTLogger(multilineMode: .allMultiline) }
19-
SignalHandlingConfig.logger?.logLevel = .trace
20+
Conf[rootValueFor: \.signalHandling.logger]?.logLevel = .trace
2021
}
2122

2223
func testBasicSignalDelayByUnsigaction() throws {

0 commit comments

Comments
 (0)