Skip to content

Commit 8fe7d28

Browse files
committed
fix: avoid deadlock in add_tt
1 parent 52f0d2e commit 8fe7d28

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

compiler/rustc_codegen_llvm/src/typetree.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,12 @@ pub(crate) fn add_tt<'ll>(
7676
let attr_name = "enzyme_type";
7777
let c_attr_name = CString::new(attr_name).unwrap();
7878

79-
let enzyme_wrapper = EnzymeWrapper::get_or_init(sysroot);
79+
drop(EnzymeWrapper::get_or_init(sysroot));
8080

8181
for (i, input) in inputs.iter().enumerate() {
8282
unsafe {
8383
let enzyme_tt = to_enzyme_typetree(input.clone(), llvm_data_layout, llcx);
84+
let enzyme_wrapper = EnzymeWrapper::get_instance();
8485
let c_str = enzyme_wrapper.tree_to_string(enzyme_tt.inner);
8586
let c_str = std::ffi::CStr::from_ptr(c_str);
8687

@@ -99,6 +100,7 @@ pub(crate) fn add_tt<'ll>(
99100

100101
unsafe {
101102
let enzyme_tt = to_enzyme_typetree(ret_tt, llvm_data_layout, llcx);
103+
let enzyme_wrapper = EnzymeWrapper::get_instance();
102104
let c_str = enzyme_wrapper.tree_to_string(enzyme_tt.inner);
103105
let c_str = std::ffi::CStr::from_ptr(c_str);
104106

0 commit comments

Comments
 (0)