• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ekarpp / lumo / 14235426927

03 Apr 2025 03:53AM UTC coverage: 72.653%. First build
14235426927

push

github

ekarpp
0.6.1

* Generalize thread pool
* Paralellize material parsing for scenes
* Implement variable wavelength index of refraction (and dispersion)
* Implement efficiency optimized russian roulette
* Add batching to samplers
* Restricts mediums to scene boundaries
* Fix cylinder bounding box
* Fix instance sample on normals
* Update github actions

290 of 821 new or added lines in 36 files covered. (35.32%)

6740 of 9277 relevant lines covered (72.65%)

39613243.93 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/pool/worker.rs
1
use super::*;
2
use std::thread;
3

4
#[allow(dead_code)]
5
pub struct Worker {
6
    idx: usize,
7
    thread: thread::JoinHandle<()>,
8
}
9

10
impl Worker {
11
    #[allow(clippy::too_many_arguments)]
NEW
12
    pub fn new<T: Send + Sync + 'static, R: Send + Sync + 'static, E: Executor<T, R>>(
×
NEW
13
        idx: usize,
×
NEW
14
        result_tx: mpsc::Sender<Option<R>>,
×
NEW
15
        task_queue: Arc<Mutex<queue::RenderQueue<Option<T>>>>,
×
NEW
16
        mut exec: E,
×
NEW
17
    ) -> Self {
×
NEW
18
        let thread = thread::spawn(move || {
×
19
            loop {
NEW
20
                let task = task_queue.lock().unwrap().pop();
×
NEW
21
                let Some(task) = task else { result_tx.send(None).unwrap(); break; };
×
NEW
22
                result_tx.send(Some( exec.exec(task) )).unwrap();
×
23
            }
NEW
24
        });
×
NEW
25
        Self {
×
NEW
26
            idx, thread,
×
NEW
27
        }
×
NEW
28
    }
×
29
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc