diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-27 01:47:54 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-27 01:47:54 +0100 |
commit | 3cc7df2954a6f1d69922ba1a4c0129db73a09327 (patch) | |
tree | db30c0af70dc5ea68586072f3da0b1a21723dbf4 /client/src/main.rs | |
parent | 724e6e4d97f608282e891742565b1036f3e970d5 (diff) | |
download | weareserver-3cc7df2954a6f1d69922ba1a4c0129db73a09327.tar weareserver-3cc7df2954a6f1d69922ba1a4c0129db73a09327.tar.bz2 weareserver-3cc7df2954a6f1d69922ba1a4c0129db73a09327.tar.zst |
parallel texture loading which deadlocks wgpu -_-
Diffstat (limited to 'client/src/main.rs')
-rw-r--r-- | client/src/main.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/client/src/main.rs b/client/src/main.rs index e5141c7..804ab44 100644 --- a/client/src/main.rs +++ b/client/src/main.rs @@ -46,6 +46,9 @@ fn main() -> Result<()> { env_logger::init_from_env("LOG"); let args = Args::parse(); + #[cfg(feature = "deadlock_detection")] + std::thread::spawn(deadlock_task); + info!("connecting..."); let mut sock = TcpStream::connect(args.address)?; Packet::Connect(random()).write(&mut sock)?; @@ -56,3 +59,20 @@ fn main() -> Result<()> { Ok(()) } + +#[cfg(feature = "deadlock_detection")] +fn deadlock_task() { + let deadlocks = loop { + std::thread::sleep(std::time::Duration::from_secs(1)); + let deadlocks = parking_lot::deadlock::check_deadlock(); + if !deadlocks.is_empty() { + break deadlocks; + } + }; + for threads in &deadlocks { + for t in threads { + println!("thread {:#?}", t.thread_id()); + println!("{:#?}", t.backtrace()); + } + } +} |