()
| 1561 | } |
| 1562 | |
| 1563 | pub(crate) fn perform_process_exit_cleanup() -> bool { |
| 1564 | static CLEANUP_DONE: AtomicBool = AtomicBool::new(false); |
| 1565 | |
| 1566 | if CLEANUP_DONE |
| 1567 | .compare_exchange(false, true, Ordering::SeqCst, Ordering::SeqCst) |
| 1568 | .is_err() |
| 1569 | { |
| 1570 | return false; |
| 1571 | } |
| 1572 | |
| 1573 | if let Some(search_service) = get_global_workspace_search_service() { |
| 1574 | search_service.shutdown_blocking(); |
| 1575 | } |
| 1576 | bitfun_core::util::process_manager::cleanup_all_processes(); |
| 1577 | api::remote_connect_api::cleanup_on_exit(); |
| 1578 | true |
| 1579 | } |
| 1580 | |
| 1581 | fn configure_workspace_search_daemon_env() -> Option<std::path::PathBuf> { |
| 1582 | let path = bitfun_core::service::search::resolve_workspace_search_daemon_program_path(); |
no test coverage detected