From 4c378d7173fae64ea77c6ead7258c30ff64f2789 Mon Sep 17 00:00:00 2001 From: HampusM Date: Tue, 21 Apr 2026 16:55:25 +0200 Subject: feat(engine): make windowing & work queue threads named --- engine/src/work_queue.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'engine/src/work_queue.rs') diff --git a/engine/src/work_queue.rs b/engine/src/work_queue.rs index 7226c7d..48cb2ff 100644 --- a/engine/src/work_queue.rs +++ b/engine/src/work_queue.rs @@ -1,6 +1,6 @@ use std::marker::PhantomData; -use std::sync::mpsc::{channel as mpsc_channel, Sender as MpscSender}; -use std::thread::JoinHandle as ThreadHandle; +use std::sync::mpsc::{Sender as MpscSender, channel as mpsc_channel}; +use std::thread::{Builder as ThreadBuilder, JoinHandle as ThreadJoinHandle}; pub struct Work { @@ -12,25 +12,28 @@ pub struct Work pub struct WorkQueue { work_sender: MpscSender>, - _thread: ThreadHandle<()>, + _thread: ThreadJoinHandle<()>, _pd: PhantomData, } impl WorkQueue { - pub fn new() -> Self + pub fn new(name: &str) -> Self { let (work_sender, work_receiver) = mpsc_channel::>(); Self { work_sender, - _thread: std::thread::spawn(move || { - let work_receiver = work_receiver; + _thread: ThreadBuilder::new() + .name(name.to_string()) + .spawn(move || { + let work_receiver = work_receiver; - while let Ok(work) = work_receiver.recv() { - (work.func)(work.user_data); - } - }), + while let Ok(work) = work_receiver.recv() { + (work.func)(work.user_data); + } + }) + .expect("Failed to create work queue thread"), _pd: PhantomData, } } -- cgit v1.2.3-18-g5258