@@ -416,7 +416,7 @@ impl CoreRegistry {
416416
417417 pub async fn serve_with_config ( self , config : ServeConfig ) -> Result < ( ) > {
418418 let dispatcher = self . into_dispatcher ( & config) ;
419- let mut engine_process = match config. engine_binary_path . as_ref ( ) {
419+ let _engine_process = match config. engine_binary_path . as_ref ( ) {
420420 Some ( binary_path) => {
421421 Some ( EngineProcessManager :: start ( binary_path, & config. endpoint ) . await ?)
422422 }
@@ -427,7 +427,7 @@ impl CoreRegistry {
427427 dispatcher : dispatcher. clone ( ) ,
428428 } ) ;
429429
430- let handle = start_envoy ( rivet_envoy_client:: config:: EnvoyConfig {
430+ let _handle = start_envoy ( rivet_envoy_client:: config:: EnvoyConfig {
431431 version : config. version ,
432432 endpoint : config. endpoint ,
433433 token : config. token ,
@@ -441,18 +441,12 @@ impl CoreRegistry {
441441 } )
442442 . await ;
443443
444- let shutdown_signal = tokio:: signal:: ctrl_c ( )
445- . await
446- . context ( "wait for registry shutdown signal" ) ;
447- handle. shutdown ( false ) ;
448-
449- if let Some ( engine_process) = engine_process. take ( ) {
450- engine_process. shutdown ( ) . await ?;
451- }
452-
453- shutdown_signal?;
454-
455- Ok ( ( ) )
444+ // Do not install `tokio::signal::ctrl_c()` here. It calls
445+ // `sigaction(SIGINT, ...)` at the POSIX level, which overrides the
446+ // host's default SIGINT handling when rivetkit-core is embedded in
447+ // Node via NAPI and leaves the host process unable to exit. Callers
448+ // drive shutdown themselves by dropping the task.
449+ std:: future:: pending :: < Result < ( ) > > ( ) . await
456450 }
457451
458452 fn into_dispatcher ( self , config : & ServeConfig ) -> Arc < RegistryDispatcher > {
0 commit comments