rust/tests/fail/sync/libc_pthread_mutex_normal_deadlock.rs

20 lines
682 B
Rust
Raw Normal View History

2020-04-05 13:25:49 -05:00
// ignore-windows: No libc on Windows
#![feature(rustc_private)]
extern crate libc;
fn main() {
unsafe {
let mut mutexattr: libc::pthread_mutexattr_t = std::mem::zeroed();
assert_eq!(
libc::pthread_mutexattr_settype(&mut mutexattr as *mut _, libc::PTHREAD_MUTEX_NORMAL),
2022-06-21 13:28:00 -05:00
0,
);
2020-04-05 13:25:49 -05:00
let mut mutex: libc::pthread_mutex_t = std::mem::zeroed();
assert_eq!(libc::pthread_mutex_init(&mut mutex as *mut _, &mutexattr as *const _), 0);
assert_eq!(libc::pthread_mutex_lock(&mut mutex as *mut _), 0);
2020-05-24 13:20:28 -05:00
libc::pthread_mutex_lock(&mut mutex as *mut _); //~ ERROR deadlock: the evaluated program deadlocked
2020-04-05 13:25:49 -05:00
}
}