From 7aceae95e9c595d376da297f1741b72efde45003 Mon Sep 17 00:00:00 2001 From: Hyunsu Cho Date: Tue, 11 Aug 2026 14:52:43 -0700 Subject: [PATCH] Fix nvforest::handle_t when no GPU is available --- cpp/include/nvforest/handle.hpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/cpp/include/nvforest/handle.hpp b/cpp/include/nvforest/handle.hpp index fd1f3bb..3d51d3c 100644 --- a/cpp/include/nvforest/handle.hpp +++ b/cpp/include/nvforest/handle.hpp @@ -18,14 +18,21 @@ struct handle_t { handle_t(raft::handle_t const& raft_handle) : raft_handle_{&raft_handle} {} auto get_next_usable_stream() const { + if (!raft_handle_) { return cuda_stream{}; } return cuda_stream{raft_handle_->get_next_usable_stream().value()}; } - auto get_stream_pool_size() const { return raft_handle_->get_stream_pool_size(); } + auto get_stream_pool_size() const + { + if (!raft_handle_) { return std::size_t{}; } + return raft_handle_->get_stream_pool_size(); + } auto get_usable_stream_count() const { return std::max(get_stream_pool_size(), std::size_t{1}); } void synchronize() const { - raft_handle_->sync_stream_pool(); - raft_handle_->sync_stream(); + if (raft_handle_) { + raft_handle_->sync_stream_pool(); + raft_handle_->sync_stream(); + } } private: