summaryrefslogtreecommitdiff
path: root/client/src/main.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-27 01:47:54 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-27 01:47:54 +0100
commit3cc7df2954a6f1d69922ba1a4c0129db73a09327 (patch)
treedb30c0af70dc5ea68586072f3da0b1a21723dbf4 /client/src/main.rs
parent724e6e4d97f608282e891742565b1036f3e970d5 (diff)
downloadweareserver-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.rs20
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());
+ }
+ }
+}