@@ -4,6 +4,7 @@ use crate::server::ServerFlags;
4
4
use crate :: worker:: utils:: { get_event_metadata, send_event_if_event_worker_available} ;
5
5
6
6
use anyhow:: Error ;
7
+ use base_mem_check:: MemCheckState ;
7
8
use base_rt:: error:: CloneableError ;
8
9
use deno_core:: unsync:: MaskFutureAsSend ;
9
10
use futures_util:: FutureExt ;
@@ -17,7 +18,7 @@ use sb_workers::context::{
17
18
WorkerRequestMsg ,
18
19
} ;
19
20
use std:: future:: ready;
20
- use std:: sync:: Arc ;
21
+ use std:: sync:: { Arc , RwLock } ;
21
22
use tokio:: io;
22
23
use tokio:: sync:: { mpsc, oneshot} ;
23
24
use tokio:: time:: Instant ;
@@ -183,7 +184,9 @@ impl std::ops::Deref for Worker {
183
184
impl Worker {
184
185
pub fn start (
185
186
self ,
186
- booter_signal : oneshot:: Sender < Result < ( MetricSource , CancellationToken ) , Error > > ,
187
+ booter_signal : oneshot:: Sender <
188
+ Result < ( MetricSource , Arc < RwLock < MemCheckState > > , CancellationToken ) , Error > ,
189
+ > ,
187
190
exit : WorkerExit ,
188
191
) {
189
192
let worker_name = self . worker_name . clone ( ) ;
@@ -242,7 +245,11 @@ impl Worker {
242
245
}
243
246
} ;
244
247
245
- let _ = booter_signal. send ( Ok ( ( metric_src, runtime. drop_token . clone ( ) ) ) ) ;
248
+ let _ = booter_signal. send ( Ok ( (
249
+ metric_src,
250
+ runtime. mem_check_state ( ) ,
251
+ runtime. drop_token . clone ( ) ,
252
+ ) ) ) ;
246
253
let supervise_fut = match imp. clone ( ) . supervise ( & mut runtime) {
247
254
Some ( v) => v. boxed ( ) ,
248
255
None if worker_kind. is_user_worker ( ) => return None ,
@@ -325,4 +332,5 @@ pub struct WorkerSurface {
325
332
pub msg_tx : mpsc:: UnboundedSender < WorkerRequestMsg > ,
326
333
pub exit : WorkerExit ,
327
334
pub cancel : CancellationToken ,
335
+ pub mem_check : Arc < RwLock < MemCheckState > > ,
328
336
}
0 commit comments