|
@@ -325,14 +325,11 @@ UA_StatusCode UA_Server_addRepeatedJob(UA_Server *server, UA_Job job, UA_UInt32
|
|
|
|
|
|
static UA_UInt16 processRepeatedJobs(UA_Server *server) {
|
|
|
UA_DateTime current = UA_DateTime_now();
|
|
|
- struct RepeatedJobs *next = LIST_FIRST(&server->repeatedJobs);
|
|
|
struct RepeatedJobs *tw = UA_NULL;
|
|
|
|
|
|
- while(next) {
|
|
|
- tw = next;
|
|
|
+ while((tw = LIST_FIRST(&server->repeatedJobs)) != UA_NULL) {
|
|
|
if(tw->nextTime > current)
|
|
|
break;
|
|
|
- next = LIST_NEXT(tw, pointers);
|
|
|
|
|
|
#ifdef UA_MULTITHREADING
|
|
|
|
|
@@ -346,10 +343,12 @@ static UA_UInt16 processRepeatedJobs(UA_Server *server) {
|
|
|
dispatchJobs(server, jobsCopy, tw->jobsSize);
|
|
|
#else
|
|
|
for(size_t i=0;i<tw->jobsSize;i++)
|
|
|
+
|
|
|
processJobs(server, &tw->jobs[i].job, 1);
|
|
|
#endif
|
|
|
tw->nextTime += tw->interval;
|
|
|
- struct RepeatedJobs *prevTw = tw;
|
|
|
+
|
|
|
+ struct RepeatedJobs *prevTw = LIST_FIRST(&server->repeatedJobs);
|
|
|
while(UA_TRUE) {
|
|
|
struct RepeatedJobs *n = LIST_NEXT(prevTw, pointers);
|
|
|
if(!n || n->nextTime > tw->nextTime)
|