From f54dc2ff738b423b89bd53cca03532d84a07a6f7 Mon Sep 17 00:00:00 2001 From: Alexander Bielen Date: Wed, 24 Oct 2018 19:38:58 +0200 Subject: [PATCH 1/4] Added conditional sleep with minimum timeout --- .../parabot/environment/api/utils/Time.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/main/java/org/parabot/environment/api/utils/Time.java b/src/main/java/org/parabot/environment/api/utils/Time.java index 5418f42..29b5ad7 100644 --- a/src/main/java/org/parabot/environment/api/utils/Time.java +++ b/src/main/java/org/parabot/environment/api/utils/Time.java @@ -53,6 +53,30 @@ public final class Time { return true; } + /** + * Sleeps until SleepCondition is valid, but with a minimum timeout. + * + * @param conn the condition. + * @param timeout the time in milliseconds before it stops sleeping. + * @param minimumTimeout the minimum time to sleep. + * + * @return whether it ran successfully without timing out. + */ + public static boolean sleep(SleepCondition conn, int timeout, int minimumTimeout) { + long start = System.currentTimeMillis(); + while (!conn.isValid()) { + if (start + timeout < System.currentTimeMillis()) { + return false; + } + Time.sleep(50); + } + long t; + if((t = System.currentTimeMillis() - start) < minimumTimeout) { + Time.sleep((int)(minimumTimeout - t)); + } + return true; + } + /** * Gets current time in milliseconds * From cbc5c3cc7d520807b1fca9f2fbd379bd7bf12f3f Mon Sep 17 00:00:00 2001 From: Alexander Bielen Date: Fri, 26 Oct 2018 18:27:04 +0200 Subject: [PATCH 2/4] Removed duplicate code by calling original sleep function --- src/main/java/org/parabot/environment/api/utils/Time.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/main/java/org/parabot/environment/api/utils/Time.java b/src/main/java/org/parabot/environment/api/utils/Time.java index 29b5ad7..86c1ee8 100644 --- a/src/main/java/org/parabot/environment/api/utils/Time.java +++ b/src/main/java/org/parabot/environment/api/utils/Time.java @@ -64,12 +64,7 @@ public final class Time { */ public static boolean sleep(SleepCondition conn, int timeout, int minimumTimeout) { long start = System.currentTimeMillis(); - while (!conn.isValid()) { - if (start + timeout < System.currentTimeMillis()) { - return false; - } - Time.sleep(50); - } + if(!sleep(conn, timeout)) return false; long t; if((t = System.currentTimeMillis() - start) < minimumTimeout) { Time.sleep((int)(minimumTimeout - t)); From 893f384d3381f99fe2fa8420d5bcca09a66f7851 Mon Sep 17 00:00:00 2001 From: Alexander Bielen Date: Fri, 26 Oct 2018 19:32:21 +0200 Subject: [PATCH 3/4] Added brackets to if statement --- src/main/java/org/parabot/environment/api/utils/Time.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/environment/api/utils/Time.java b/src/main/java/org/parabot/environment/api/utils/Time.java index 86c1ee8..ef8509c 100644 --- a/src/main/java/org/parabot/environment/api/utils/Time.java +++ b/src/main/java/org/parabot/environment/api/utils/Time.java @@ -64,7 +64,9 @@ public final class Time { */ public static boolean sleep(SleepCondition conn, int timeout, int minimumTimeout) { long start = System.currentTimeMillis(); - if(!sleep(conn, timeout)) return false; + if(!sleep(conn, timeout)) { + return false; + } long t; if((t = System.currentTimeMillis() - start) < minimumTimeout) { Time.sleep((int)(minimumTimeout - t)); From b427c4b629d7f12cef0ad054c5e8ca11d880ff06 Mon Sep 17 00:00:00 2001 From: Alexander Bielen Date: Fri, 26 Oct 2018 19:38:28 +0200 Subject: [PATCH 4/4] Added whitespaces for readability --- src/main/java/org/parabot/environment/api/utils/Time.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/parabot/environment/api/utils/Time.java b/src/main/java/org/parabot/environment/api/utils/Time.java index ef8509c..c790ed0 100644 --- a/src/main/java/org/parabot/environment/api/utils/Time.java +++ b/src/main/java/org/parabot/environment/api/utils/Time.java @@ -64,13 +64,16 @@ public final class Time { */ public static boolean sleep(SleepCondition conn, int timeout, int minimumTimeout) { long start = System.currentTimeMillis(); + if(!sleep(conn, timeout)) { return false; } + long t; if((t = System.currentTimeMillis() - start) < minimumTimeout) { Time.sleep((int)(minimumTimeout - t)); } + return true; }