From df38f03cfc4defe0c76f4f0fc0278dcac38a8e34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20Schr=C3=B6der?=
 <fschroeder@techfak.uni-bielefeld.de>
Date: Thu, 25 Jan 2024 11:28:29 +0100
Subject: [PATCH] Remove unnecessary lock in order enumeration

The lock in the enumeration of orders in the Overcooked simulator's 2D visualization was extra and thus, it was removed. This simplifies the code and potentially improves performance, as locks can introduce overhead and contention issues. It was confirmed that eliminating this lock doesn't affect the functionality or performance of the order enumeration.
---
 .../gui_2d_vis/overcooked_gui.py              | 73 +++++++++----------
 1 file changed, 36 insertions(+), 37 deletions(-)

diff --git a/overcooked_simulator/gui_2d_vis/overcooked_gui.py b/overcooked_simulator/gui_2d_vis/overcooked_gui.py
index 08d71266..c8cb0fd7 100644
--- a/overcooked_simulator/gui_2d_vis/overcooked_gui.py
+++ b/overcooked_simulator/gui_2d_vis/overcooked_gui.py
@@ -581,44 +581,43 @@ class PyGameGUI:
         pygame.draw.rect(order_screen, bg_color, order_screen.get_rect())
 
         order_rects_start = (orders_height // 2) - (self.grid_size // 2)
-        with self.simulator.env.lock:
-            for idx, order in enumerate(state["orders"]):
-                order: Order
-                order_upper_left = [
-                    order_rects_start + idx * self.grid_size * 1.2,
-                    order_rects_start,
-                ]
-                pygame.draw.rect(
-                    order_screen,
-                    colors["red"],
-                    pygame.Rect(
-                        order_upper_left[0],
-                        order_upper_left[1],
-                        self.grid_size,
-                        self.grid_size,
-                    ),
-                    width=2,
-                )
-                center = np.array(order_upper_left) + np.array(
-                    [self.grid_size / 2, self.grid_size / 2]
-                )
-                self.draw_thing(
-                    center,
-                    self.visualization_config["Plate"]["parts"],
-                    screen=order_screen,
-                )
-                self.draw_item(
-                    center,
-                    order.meal,
-                    plate=True,
-                    screen=order_screen,
-                )
-                order_done_seconds = (
-                    (order.start_time + order.max_duration) - state["env_time"]
-                ).total_seconds()
+        for idx, order in enumerate(state["orders"]):
+            order: Order
+            order_upper_left = [
+                order_rects_start + idx * self.grid_size * 1.2,
+                order_rects_start,
+            ]
+            pygame.draw.rect(
+                order_screen,
+                colors["red"],
+                pygame.Rect(
+                    order_upper_left[0],
+                    order_upper_left[1],
+                    self.grid_size,
+                    self.grid_size,
+                ),
+                width=2,
+            )
+            center = np.array(order_upper_left) + np.array(
+                [self.grid_size / 2, self.grid_size / 2]
+            )
+            self.draw_thing(
+                center,
+                self.visualization_config["Plate"]["parts"],
+                screen=order_screen,
+            )
+            self.draw_item(
+                center,
+                order.meal,
+                plate=True,
+                screen=order_screen,
+            )
+            order_done_seconds = (
+                (order.start_time + order.max_duration) - state["env_time"]
+            ).total_seconds()
 
-                percentage = order_done_seconds / order.max_duration.total_seconds()
-                self.draw_progress_bar(center, percentage, screen=order_screen)
+            percentage = order_done_seconds / order.max_duration.total_seconds()
+            self.draw_progress_bar(center, percentage, screen=order_screen)
 
         orders_rect = order_screen.get_rect()
         orders_rect.center = [
-- 
GitLab