diff --git a/lib/graphiti/scope.rb b/lib/graphiti/scope.rb index e874bcb6..f89d740c 100644 --- a/lib/graphiti/scope.rb +++ b/lib/graphiti/scope.rb @@ -55,14 +55,15 @@ def future_resolve assign_serializer(resolved) yield resolved if block_given? @opts[:after_resolve]&.call(resolved) - close_adapter = Graphiti.config.concurrency && @query.parents.any? - future_resolve_sideloads(resolved) - .on_resolution!(@resource.adapter, close_adapter) do |_, _, _, adapter, close_adapter| - adapter.close if close_adapter - end - .then_on(self.class.global_thread_pool_executor, resolved) do - resolved - end + sideloaded = @query.parents.any? + close_adapter = Graphiti.config.concurrency && sideloaded + if close_adapter + @resource.adapter.close + end + + future_resolve_sideloads(resolved).then_on(self.class.global_thread_pool_executor, resolved) do + resolved + end end end