|
@@ -146,7 +146,7 @@ emptyDispatchQueue(UA_Server *server) {
|
|
|
struct RepeatedJob {
|
|
|
LIST_ENTRY(RepeatedJob) next;
|
|
|
UA_DateTime nextTime;
|
|
|
- UA_UInt32 interval;
|
|
|
+ UA_UInt64 interval;
|
|
|
UA_Guid id;
|
|
|
UA_Job job;
|
|
|
};
|
|
@@ -174,17 +174,17 @@ addRepeatedJob(UA_Server *server, struct RepeatedJob * UA_RESTRICT rj)
|
|
|
|
|
|
UA_StatusCode
|
|
|
UA_Server_addRepeatedJob(UA_Server *server, UA_Job job,
|
|
|
- UA_UInt32 interval, UA_Guid *jobId) {
|
|
|
+ UA_UInt32 intervalMs, UA_Guid *jobId) {
|
|
|
|
|
|
- if(interval < 5)
|
|
|
+ if(intervalMs < 5)
|
|
|
return UA_STATUSCODE_BADINTERNALERROR;
|
|
|
- interval *= (UA_UInt32)UA_MSEC_TO_DATETIME;
|
|
|
+ UA_UInt64 interval = intervalMs * (UA_UInt32)UA_MSEC_TO_DATETIME;
|
|
|
|
|
|
|
|
|
struct RepeatedJob *rj = UA_malloc(sizeof(struct RepeatedJob));
|
|
|
if(!rj)
|
|
|
return UA_STATUSCODE_BADOUTOFMEMORY;
|
|
|
- rj->nextTime = UA_DateTime_nowMonotonic() + interval;
|
|
|
+ rj->nextTime = UA_DateTime_nowMonotonic() + (UA_Int64) interval;
|
|
|
rj->interval = interval;
|
|
|
rj->id = UA_Guid_random();
|
|
|
rj->job = job;
|
|
@@ -235,7 +235,7 @@ processRepeatedJobs(UA_Server *server, UA_DateTime current) {
|
|
|
#endif
|
|
|
|
|
|
|
|
|
- rj->nextTime += rj->interval;
|
|
|
+ rj->nextTime += (UA_Int64)rj->interval;
|
|
|
if(rj->nextTime < current)
|
|
|
rj->nextTime = current;
|
|
|
|