aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--global-functions.rsc26
1 files changed, 22 insertions, 4 deletions
diff --git a/global-functions.rsc b/global-functions.rsc
index 50426b6..829cbf2 100644
--- a/global-functions.rsc
+++ b/global-functions.rsc
@@ -559,6 +559,12 @@
:set FileGet do={
:local FileName [ :tostr $1 ];
+ :global WaitForFile;
+
+ :if ([ $WaitForFile $FileName 0s ] = false) do={
+ :return false;
+ }
+
:local FileVal false;
:do {
:set FileVal [ /file/get $FileName ];
@@ -1771,14 +1777,26 @@
:global MAX;
:set FileName [ $CleanFilePath $FileName ];
- :local Delay ([ $MAX [ $EitherOr $WaitTime 2s ] 100ms ] / 10);
+ :local Delay ([ $MAX [ $EitherOr $WaitTime 2s ] 100ms ] / 9);
:do {
- :retry {
+ :retry {
+ :if ([ :len [ /file/find where name=$FileName ] ] = 0) do={
+ :error false;
+ }
+ } delay=$Delay max=10;
+ } on-error={
+ :return false;
+ }
+
+ :while ([ :len [ /file/find where name=$FileName ] ] > 0) do={
+ :do {
/file/get $FileName;
:return true;
- } delay=$Delay max=10;
- } on-error={ }
+ } on-error={ }
+ :delay $Delay;
+ :set Delay ($Delay * 3 / 2);
+ }
:return false;
}