Commit 48c704cc6331107730089c3680f7191f255bd722
1 parent
a54e9551
Fix some memory consumption issues
Showing
2 changed files
with
17 additions
and
11 deletions
| ... | ... | @@ -28,14 +28,18 @@ pub fn launch() -> Sender<(Arc<Pool>, Image)> { |
| 28 | 28 | let mut workers = FuturesUnordered::new(); |
| 29 | 29 | |
| 30 | 30 | loop { |
| 31 | - select! { | |
| 32 | - image = rx_upload_worker.recv().fuse() => { | |
| 33 | - match image { | |
| 34 | - Err(_) => break, | |
| 35 | - Ok((pool, image)) => workers.push(worker(pool, image)), | |
| 36 | - } | |
| 37 | - }, | |
| 38 | - _result = workers.next() => {}, | |
| 31 | + if workers.len() <= 3 { | |
| 32 | + select! { | |
| 33 | + image = rx_upload_worker.recv().fuse() => { | |
| 34 | + match image { | |
| 35 | + Err(_) => break, | |
| 36 | + Ok((pool, image)) => workers.push(worker(pool, image)), | |
| 37 | + } | |
| 38 | + }, | |
| 39 | + _result = workers.next() => {}, | |
| 40 | + } | |
| 41 | + } else { | |
| 42 | + workers.next().await; | |
| 39 | 43 | } |
| 40 | 44 | } |
| 41 | 45 | ... | ... |
| ... | ... | @@ -21,8 +21,9 @@ pub(super) async fn upload_preview_logic( mut rx_canvas :broadcast::Receiver<Dom |
| 21 | 21 | let context = canvas |
| 22 | 22 | . get_context("2d").unwrap().unwrap() |
| 23 | 23 | . dyn_into::<CanvasRenderingContext2d>().unwrap(); |
| 24 | - let image_width = upload.bitmap().width() as f64; | |
| 25 | - let image_height = upload.bitmap().height() as f64; | |
| 24 | + let bitmap = upload.bitmap(); | |
| 25 | + let image_width = bitmap.width() as f64; | |
| 26 | + let image_height = bitmap.height() as f64; | |
| 26 | 27 | let canvas_width = canvas.width() as f64; |
| 27 | 28 | let canvas_height = canvas.height() as f64; |
| 28 | 29 | |
| ... | ... | @@ -41,9 +42,10 @@ pub(super) async fn upload_preview_logic( mut rx_canvas :broadcast::Receiver<Dom |
| 41 | 42 | |
| 42 | 43 | context |
| 43 | 44 | . draw_image_with_image_bitmap_and_dw_and_dh( |
| 44 | - &upload.bitmap() | |
| 45 | + &bitmap | |
| 45 | 46 | , ox, oy, width, height ) |
| 46 | 47 | . unwrap(); |
| 48 | + bitmap.close(); | |
| 47 | 49 | } |
| 48 | 50 | } |
| 49 | 51 | ... | ... |
Please
register
or
login
to post a comment