Pārlūkot izejas kodu

do not schedule repeated jobs in the past; fixes #472

Julius Pfrommer 9 gadi atpakaļ
vecāks
revīzija
d4bf5e03ce
1 mainītis faili ar 5 papildinājumiem un 0 dzēšanām
  1. 5 0
      src/server/ua_server_worker.c

+ 5 - 0
src/server/ua_server_worker.c

@@ -343,7 +343,12 @@ static UA_UInt16 processRepeatedJobs(UA_Server *server) {
             //processJobs may sort the list but dont delete entries
             processJobs(server, &tw->jobs[i].job, 1); // does not free the job ptr
 #endif
+
+        /* set the time for the next execution */
         tw->nextTime += tw->interval;
+        if(tw->nextTime < current)
+            tw->nextTime = current;
+
         //start iterating the list from the beginning
         struct RepeatedJobs *prevTw = LIST_FIRST(&server->repeatedJobs); // after which tw do we insert?
         while(UA_TRUE) {