From 3c2baf0fe8a0d835bea57e65da6d30441d069249 Mon Sep 17 00:00:00 2001
From: mattijs <m.janssens@opencfd.co.uk>
Date: Fri, 16 May 2008 14:04:39 +0100
Subject: [PATCH] Replaced usleep with lockfile

---
 wmake/wmakeScheduler | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/wmake/wmakeScheduler b/wmake/wmakeScheduler
index 1bf2d74d8af..64ca18b0696 100755
--- a/wmake/wmakeScheduler
+++ b/wmake/wmakeScheduler
@@ -145,9 +145,6 @@ colourIndex=0
 
 while :
 do
-    # 0.5 sec
-    usleep 500000
-
     for slotGroup in $WM_HOSTS
     do
         # split 'host:N', but catch 'host:' and 'host' too
@@ -159,11 +156,8 @@ do
         i=0
         while [ "$i" -lt "$n" ]
         do
-            lock="$host:$i"
-            if [ ! -f "$lockDir/$lock" ]; then
-                # Set lock
-                touch "$lockDir/$lock"
-
+            lockFile="$lockDir/$host:$i"
+            if lockfile -r0 "$lockFile" 2>/dev/null; then
                 # Set colour
                 colour=${colours[$colourIndex]}
                 #echo "** host=$host  colourIndex=$colourIndex  colour=$colour"
@@ -186,7 +180,7 @@ do
                 retval=$?
 
                 # Release lock
-                rm -f "$lockDir/$lock" 2>/dev/null
+                rm -f "$lockFile" 2>/dev/null
                 exit $retval
             fi
             i=$(expr $i + 1)
@@ -198,6 +192,8 @@ do
             fi
         done
     done
+    # Not found any free slots. Rest a bit.
+    sleep 1
 done
 
 if [ "$WM_COLOURS" ]; then
-- 
GitLab