From 1615bff633bb1f3a76c04cda9dded287845ef4e1 Mon Sep 17 00:00:00 2001
From: Dominik Hebeler <dominik@suma-ev.de>
Date: Mon, 22 Aug 2022 12:30:54 +0200
Subject: [PATCH] fixed cpu usage problem when waiting for bv

---
 metager/app/Http/Middleware/BrowserVerification.php | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/metager/app/Http/Middleware/BrowserVerification.php b/metager/app/Http/Middleware/BrowserVerification.php
index c34a71427..3ba5a071a 100644
--- a/metager/app/Http/Middleware/BrowserVerification.php
+++ b/metager/app/Http/Middleware/BrowserVerification.php
@@ -74,6 +74,7 @@ class BrowserVerification
                 $js_enabled = true;
             }
             $bv_result = $this->waitForBV($key, false, $js_enabled);
+
             if ($bv_result) {
                 \app()->make(SearchSettings::class)->header_printed = false;
                 \app()->make(QueryTimer::class)->observeEnd(self::class);
@@ -140,7 +141,13 @@ class BrowserVerification
 
 
         do {
-            usleep(10 * 1000);
+            // Calculate Sleep Time
+            // Sleeptime gradually increases with the current wait time
+            // Min 10ms and max 1s
+            $sleep_time_milliseconds = round(now()->diffInMilliseconds($wait_start) / 10);
+            $sleep_time_milliseconds = max(10, $sleep_time_milliseconds);
+            $sleep_time_milliseconds = min(1000, $sleep_time_milliseconds);
+            usleep($sleep_time_milliseconds * 1000);
 
             $bvData = Cache::get($key);
 
-- 
GitLab