From ccebe282d515380f5501ee2c9ffcadbf62b40561 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Thu, 2 May 2024 10:26:42 +0200 Subject: [PATCH] box flowmodulestatus to reduce stack allocation of flowvalue --- backend/windmill-common/src/flow_status.rs | 6 +++--- backend/windmill-queue/src/jobs.rs | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/windmill-common/src/flow_status.rs b/backend/windmill-common/src/flow_status.rs index a9a12ed08c..3aa849e4fb 100644 --- a/backend/windmill-common/src/flow_status.rs +++ b/backend/windmill-common/src/flow_status.rs @@ -29,7 +29,7 @@ pub fn is_retry_default(v: &RetryStatus) -> bool { pub struct FlowStatus { pub step: i32, pub modules: Vec, - pub failure_module: FlowStatusModuleWParent, + pub failure_module: Box, #[serde(skip_serializing_if = "HashMap::is_empty")] #[serde(default)] @@ -227,7 +227,7 @@ impl FlowStatus { .iter() .map(|m| FlowStatusModule::WaitingForPriorSteps { id: m.id.clone() }) .collect(), - failure_module: FlowStatusModuleWParent { + failure_module: Box::new(FlowStatusModuleWParent { parent_module: None, module_status: FlowStatusModule::WaitingForPriorSteps { id: f @@ -236,7 +236,7 @@ impl FlowStatus { .map(|x| x.id.clone()) .unwrap_or_else(|| "failure".to_string()), }, - }, + }), cleanup_module: FlowCleanupModule { flow_jobs_to_clean: vec![] }, retry: RetryStatus { fail_count: 0, failed_jobs: vec![] }, restarted_from: None, diff --git a/backend/windmill-queue/src/jobs.rs b/backend/windmill-queue/src/jobs.rs index 999f233a81..63f3b2d54b 100644 --- a/backend/windmill-queue/src/jobs.rs +++ b/backend/windmill-queue/src/jobs.rs @@ -2969,12 +2969,12 @@ pub async fn push<'c, T: Serialize + Send + Sync, R: rsmq_async::RsmqConnection step: step_n, modules: truncated_modules, // failure_module is reset - failure_module: FlowStatusModuleWParent { + failure_module: Box::new(FlowStatusModuleWParent { parent_module: None, module_status: FlowStatusModule::WaitingForPriorSteps { id: "failure".to_string(), }, - }, + }), cleanup_module, // retry status is reset retry: RetryStatus { fail_count: 0, failed_jobs: vec![] }, @@ -3124,12 +3124,12 @@ pub async fn push<'c, T: Serialize + Send + Sync, R: rsmq_async::RsmqConnection step: step_n, modules: truncated_modules, // failure_module is reset - failure_module: FlowStatusModuleWParent { + failure_module: Box::new(FlowStatusModuleWParent { parent_module: None, module_status: FlowStatusModule::WaitingForPriorSteps { id: "failure".to_string(), }, - }, + }), cleanup_module, // retry status is reset retry: RetryStatus { fail_count: 0, failed_jobs: vec![] },