Skip to content

Commit

Permalink
fix(processing_engine): ensure default SIGINT behavior from python. (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
jacksonrnewhouse authored Feb 3, 2025
1 parent 0fffcc8 commit f58f343
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion influxdb3_processing_engine/src/virtualenv.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
use observability_deps::tracing::debug;
use pyo3::Python;
use std::ffi::CString;
use std::path::Path;
use std::process::Command;
use std::sync::Once;
Expand Down Expand Up @@ -46,8 +48,21 @@ fn set_pythonpath(venv_dir: &Path) -> Result<(), std::io::Error> {
pub fn init_pyo3() {
PYTHON_INIT.call_once(|| {
pyo3::prepare_freethreaded_python();
})

// This sets the signal handler fo SIGINT to be the default, allowing CTRL+C to work.
// See https://github.com/PyO3/pyo3/issues/3218.
Python::with_gil(|py| {
py.run(
&CString::new("import signal;signal.signal(signal.SIGINT, signal.SIG_DFL)")
.unwrap(),
None,
None,
)
.expect("should be able to set signal handler.");
});
});
}

#[cfg(unix)]
pub(crate) fn initialize_venv(venv_path: &Path) -> Result<(), VenvError> {
use std::process::Command;
Expand Down

0 comments on commit f58f343

Please sign in to comment.