+ /*
+ * Initial check: is the query executor already interrupted? If
+ * so, return `BT_FUNC_STATUS_AGAIN`. Returning this status is
+ * harmless: it's not `BT_FUNC_STATUS_OK` (there's no result),
+ * and it's not `BT_FUNC_STATUS_ERROR` either (there's no
+ * legitimate error). Since any query operation could return
+ * `BT_FUNC_STATUS_AGAIN` when interrupted or instead of
+ * blocking, the caller is responsible for checking the
+ * interruption state of the query executor when getting this
+ * status.
+ */
+ if (bt_query_executor_is_interrupted(query_exec)) {
+ BT_LIB_LOGD("Query executor is interrupted: "
+ "not performing the query operation: "
+ "query-exec-addr=%p, %![cc-]+C, object=\"%s\", "
+ "%![params-]+v, log-level=%s",
+ query_exec, query_exec->comp_cls,
+ query_exec->object->str, query_exec->params,
+ bt_common_logging_level_string(query_exec->log_level));
+ status = BT_FUNC_STATUS_AGAIN;
+ goto end;