| error: the evaluated program deadlocked |
| --> RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC |
| | |
| LL | let ret = unsafe { libc::pthread_join(id, ptr::null_mut()) }; |
| | ^ thread got stuck here |
| | |
| = note: this is on thread `main` |
| = note: stack backtrace: |
| 0: std::sys::thread::PLATFORM::Thread::join |
| at RUSTLIB/std/src/sys/thread/PLATFORM.rs:LL:CC |
| 1: std::thread::lifecycle::JoinInner::join |
| at RUSTLIB/std/src/thread/lifecycle.rs:LL:CC |
| 2: std::thread::JoinHandle::join |
| at RUSTLIB/std/src/thread/join_handle.rs:LL:CC |
| 3: main |
| at tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC |
| |
| error: the evaluated program deadlocked |
| --> tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC |
| | |
| LL | let res = unsafe { libc::write(fds[0], data.as_ptr() as *const libc::c_void, data.len()) }; |
| | ^ thread got stuck here |
| | |
| = note: this is on thread `unnamed-ID` |
| note: the current function got called indirectly due to this code |
| --> tests/fail-dep/libc/socketpair_block_write_twice.rs:LL:CC |
| | |
| LL | let thread2 = thread::spawn(move || { |
| | ___________________^ |
| LL | | let data = "a".as_bytes(); |
| LL | | // The write below will be blocked because the buffer is already full. |
| LL | | let res = unsafe { libc::write(fds[0], data.as_ptr() as *const libc::c_void, data.len()) }; |
| LL | | |
| LL | | assert_eq!(res, data.len().cast_signed()); |
| LL | | }); |
| | |______^ |
| |
| note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| |
| error: aborting due to 2 previous errors |
| |