gpui: Remove ExitProcess shutdown workaround (#61219)
The issue with aws-lc that necessitated this workaround has been fixed upstream: https://github.com/aws/aws-lc/issues/3197. Release Notes: - N/A
This commit is contained in:
1 parent
cd91c84675
commit
2e405c7c7a
2 files changed
+5
-15
No files matched your search
Generated
+5
-4
@@ -1559,9 +1559,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "aws-lc-rs"
|
||||
version = "1.16.3"
|
||||
version = "1.17.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0ec6fb3fe69024a75fa7e1bfb48aa6cf59706a101658ea01bfd33b2b248a038f"
|
||||
checksum = "4342d8937fc7e5dd9b1c60292261c0670c882a2cd1719cfc11b1af41731e32ad"
|
||||
dependencies = [
|
||||
"aws-lc-sys",
|
||||
"untrusted 0.7.1",
|
||||
@@ -1570,14 +1570,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "aws-lc-sys"
|
||||
version = "0.40.0"
|
||||
version = "0.42.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f50037ee5e1e41e7b8f9d161680a725bd1626cb6f8c7e901f91f942850852fe7"
|
||||
checksum = "6d9ceb1da931507a12f4fccea479dccd00da1943e1b4ae72d8e502d707361444"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cmake",
|
||||
"dunce",
|
||||
"fs_extra",
|
||||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -423,17 +423,6 @@ impl Platform for WindowsPlatform {
|
||||
|
||||
self.inner
|
||||
.with_callback(|callbacks| &callbacks.quit, |callback| callback());
|
||||
|
||||
// Bypass the CRT exit logic, which runs atexit handlers before calling ExitProcess.
|
||||
// aws-lc registers an atexit handler that intentionally acquires a lock without releasing it.
|
||||
// aws-lc also has thread_local objects which acquire this lock in their destructor.
|
||||
// Destructors for thread_locals run under the loader lock, so there is a race condition
|
||||
// where, if a thread exits after atexit handlers have run, the TLS destructors will block
|
||||
// indefinitely on this lock while holding the loader lock. Since ExitProcess also requires
|
||||
// the loader lock, process teardown will deadlock.
|
||||
unsafe {
|
||||
windows::Win32::System::Threading::ExitProcess(0);
|
||||
}
|
||||
}
|
||||
|
||||
fn quit(&self) {
|
||||
|
||||
Reference in new issue
Block a user