Skip to content

Commit fd8738a

Browse files
committed
lib: Simplify the libclang setup.
1 parent 99974ad commit fd8738a

File tree

1 file changed

+7
-15
lines changed

1 file changed

+7
-15
lines changed

src/lib.rs

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ use regex_set::RegexSet;
8686
use std::fs::OpenOptions;
8787
use std::io::{self, Write};
8888
use std::path::Path;
89-
use std::sync::{Arc, Mutex};
89+
use std::sync::Arc;
9090

9191
use syntax::ast;
9292
use syntax::codemap::{DUMMY_SP, Span};
@@ -653,23 +653,15 @@ fn ensure_libclang_is_loaded() {
653653
// across different threads.
654654

655655
lazy_static! {
656-
static ref LIBCLANG: Mutex<Option<Arc<clang_sys::SharedLibrary>>> = {
657-
Mutex::new(None)
656+
static ref LIBCLANG: Arc<clang_sys::SharedLibrary> = {
657+
clang_sys::load().expect("Unable to find libclang");
658+
clang_sys::get_library()
659+
.expect("We just loaded libclang and it had better still be \
660+
here!")
658661
};
659662
}
660663

661-
let mut libclang = LIBCLANG.lock().unwrap();
662-
if !clang_sys::is_loaded() {
663-
if libclang.is_none() {
664-
// TODO(emilio): Return meaningful error (breaking).
665-
clang_sys::load().expect("Unable to find libclang");
666-
*libclang = Some(clang_sys::get_library()
667-
.expect("We just loaded libclang and it had \
668-
better still be here!"));
669-
} else {
670-
clang_sys::set_library(libclang.clone());
671-
}
672-
}
664+
clang_sys::set_library(Some(LIBCLANG.clone()));
673665
}
674666

675667
/// Generated Rust bindings.

0 commit comments

Comments
 (0)