Skip to content

Commit b749f10

Browse files
authored
Merge pull request #69915 from compnerd/events
swift-inspect: clean up event creation on Windows
2 parents 49f28c8 + d145924 commit b749f10

File tree

2 files changed

+20
-25
lines changed

2 files changed

+20
-25
lines changed

tools/swift-inspect/Sources/swift-inspect/WinSDK+Extentions.swift

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,21 @@
1414

1515
import WinSDK
1616

17-
internal let FILE_MAP_ALL_ACCESS = DWORD(
18-
STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_WRITE | SECTION_MAP_READ
19-
| SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE)
17+
internal var FILE_MAP_ALL_ACCESS: DWORD {
18+
DWORD(STANDARD_RIGHTS_REQUIRED | SECTION_QUERY |
19+
SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE |
20+
SECTION_EXTEND_SIZE)
21+
}
22+
23+
internal func CreateEvent(_ name: String, bManualReset: Bool = false,
24+
bInitialState: Bool = false) -> HANDLE? {
25+
let hEvent: HANDLE = CreateEventA(LPSECURITY_ATTRIBUTES(bitPattern: 0),
26+
bManualReset, bInitialState, name)
27+
if hEvent == HANDLE(bitPattern: 0) {
28+
print("CreateEvent failed \(GetLastError())")
29+
return nil
30+
}
31+
return hEvent
32+
}
2033

2134
#endif

tools/swift-inspect/Sources/swift-inspect/WindowsRemoteProcess.swift

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -529,30 +529,12 @@ internal final class WindowsRemoteProcess: RemoteProcess {
529529
}
530530

531531
private func createEventPair(_ dwProcessId: DWORD) -> (HANDLE, HANDLE)? {
532-
let readEventName = READ_EVENT_NAME_PREFIX + "-" + String(dwProcessId)
533-
let writeEventName = WRITE_EVENT_NAME_PREFIX + "-" + String(dwProcessId)
534-
let hReadEvent: HANDLE = CreateEventA(
535-
LPSECURITY_ATTRIBUTES(bitPattern: 0),
536-
false, // Auto-reset
537-
false, // Initial state is nonsignaled
538-
readEventName)
539-
if hReadEvent == HANDLE(bitPattern: 0) {
540-
print("CreateEvent failed \(GetLastError())")
541-
return nil
542-
}
543-
let hWriteEvent: HANDLE = CreateEventA(
544-
LPSECURITY_ATTRIBUTES(bitPattern: 0),
545-
false, // Auto-reset
546-
false, // Initial state is nonsignaled
547-
writeEventName)
548-
if hWriteEvent == HANDLE(bitPattern: 0) {
549-
print("CreateEvent failed \(GetLastError())")
550-
CloseHandle(hReadEvent)
551-
return nil
552-
}
532+
let hReadEvent = CreateEvent("\(READ_EVENT_NAME_PREFIX)-\(dwProcessId)")
533+
guard let hReadEvent else { return nil }
534+
let hWriteEvent = CreateEvent("\(WRITE_EVENT_NAME_PREFIX)-\(dwProcessId)")
535+
guard let hWriteEvent else { CloseHandle(hReadEvent); return nil }
553536
return (hReadEvent, hWriteEvent)
554537
}
555-
556538
}
557539

558540
#endif

0 commit comments

Comments
 (0)