From 3c33bfec1f9a399d0449ecb184385cc8eb5758e9 Mon Sep 17 00:00:00 2001 From: Jon <vitale.jonathan@ymail.com> Date: Thu, 29 Sep 2022 12:20:17 +1000 Subject: [PATCH] Add dummy method to make the occupying robot unavailable for subtask (c) --- src/classes/assignment.js | 4 ++-- src/classes/task2/robot-waiter.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/classes/assignment.js b/src/classes/assignment.js index 46ca1dc..a3fe7ff 100644 --- a/src/classes/assignment.js +++ b/src/classes/assignment.js @@ -321,10 +321,10 @@ class Task2 { let misplacedRobot = targetTable.getRobotAtTable(); let token = await misplacedRobot.acquire(); let promiseSleep = new Promise((resolve) => { - setTimeout(() => { + misplacedRobot.dummyAction().then( () => { misplacedRobot.release(token); resolve(true); - }, 4000 + Math.random() * 5000); + }); }); await safeTeleportTo(randRobot.getRobotID(), targetTable.getTableID()); await promiseSleep; diff --git a/src/classes/task2/robot-waiter.js b/src/classes/task2/robot-waiter.js index afd2136..682fdf1 100644 --- a/src/classes/task2/robot-waiter.js +++ b/src/classes/task2/robot-waiter.js @@ -158,5 +158,20 @@ class RobotWaiter { this._nextAcquisitionToken = 0; this._acquisitionTokens = []; } + + async dummyAction(){ + this.#startProcess(`dummyAction()`); + try{ + let actionTime = parseInt(2000 + Math.random() * 5000); + + await this.sleep(actionTime); + } catch (error) { + throw(error); + } finally { + this.#endProcess(); + } + + return true; + } } \ No newline at end of file -- GitLab