source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
[[package]]
name = "educe"
version = "0.5.11"
dependencies = [
"assert-unmoved",
"educe",
+ "libc",
+ "nix",
"pinarcmutex",
"strum",
"tokio",
"windows-sys 0.48.0",
]
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+]
+
[[package]]
name = "num_cpus"
version = "1.16.0"
[dependencies]
assert-unmoved = "0.1.6"
educe = "0.5"
+libc = "0.2.154"
+nix = { version = "0.28.0", features = ["process"] }
pinarcmutex = "0.1.1"
strum = { version = "0.26.2", features = ["derive"] }
tokio = { version = "1.37.0", features = ["full"] }
-use std::pin::*;
-use std::mem;
-use pinarcmutex::*;
-use assert_unmoved::AssertUnmoved;
-
-type Payload = AssertUnmoved::<()>;
-
-#[tokio::main]
-async fn main() {
- let pam = PinArcMutex::new(Payload::new(()));
- let mut guard = pam.lock().await;
- let payload: Pin<&mut Payload> = guard.get();
- let _: Pin<&mut ()> = payload.get_pin_mut();
- let payload: &mut Payload = &mut *guard;
- let other_payload = Payload::new(());
- mem::swap(payload, &mut other_payload);
- other_payload.get_mut();
+fn main(){
+ nix::unistd::execv(c"t", &[c"t"]).unwrap();
}