From 1db4f4cd432afac46b3526022bccb7ac6ba82920 Mon Sep 17 00:00:00 2001
From: Birte Kristina Friesel <derf@finalrewind.org>
Date: Sun, 23 Jun 2024 12:47:41 +0200
Subject: [PATCH] work: give bodged background tasks some time to complete

---
 lib/Travelynx/Command/work.pm | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/lib/Travelynx/Command/work.pm b/lib/Travelynx/Command/work.pm
index 65fddc35..129ff450 100644
--- a/lib/Travelynx/Command/work.pm
+++ b/lib/Travelynx/Command/work.pm
@@ -324,6 +324,15 @@ sub run {
 	if ( not $self->app->config->{traewelling}->{separate_worker} ) {
 		$self->app->start('traewelling');
 	}
+
+	# add_wagonorder and add_stationinfo assume a permanently running IOLoop
+	# and do not allow Mojolicious commands to wait until they have completed.
+	# Hence, some add_wagonorder and add_stationinfo calls made here may not
+	# complete before the work command exits, and thus have no effect.
+	#
+	# This is not ideal and will need fixing at some point.  Until then, here
+	# is the pragmatic solution for 99% of the associated issues.
+	Mojo::Promise->timer(5)->wait;
 }
 
 1;
-- 
GitLab