diff --git a/library/libsds.h b/library/libsds.h index 63a16c8..044151a 100644 --- a/library/libsds.h +++ b/library/libsds.h @@ -51,6 +51,8 @@ int MarkDependenciesMet(void* ctx, SdsCallBack callback, void* userData); +int StartPeriodicTasks(void* ctx, SdsCallBack callback, void* userData); + #ifdef __cplusplus diff --git a/library/libsds.nim b/library/libsds.nim index cecfdf5..895a960 100644 --- a/library/libsds.nim +++ b/library/libsds.nim @@ -301,5 +301,17 @@ proc MarkDependenciesMet( userData, ) +proc StartPeriodicTasks( + ctx: ptr SdsContext, callback: SdsCallBack, userData: pointer +): cint {.dynlib, exportc.} = + checkLibsdsParams(ctx, callback, userData) + handleRequest( + ctx, + RequestType.LIFECYCLE, + SdsLifecycleRequest.createShared(SdsLifecycleMsgType.START_PERIODIC_TASKS), + callback, + userData, + ) + ### End of exported procs ################################################################################ diff --git a/library/sds_thread/inter_thread_communication/requests/sds_lifecycle_request.nim b/library/sds_thread/inter_thread_communication/requests/sds_lifecycle_request.nim index a70ab3a..ce90d2f 100644 --- a/library/sds_thread/inter_thread_communication/requests/sds_lifecycle_request.nim +++ b/library/sds_thread/inter_thread_communication/requests/sds_lifecycle_request.nim @@ -7,6 +7,7 @@ import ../../../../src/[reliability_utils, reliability, message] type SdsLifecycleMsgType* = enum CREATE_RELIABILITY_MANAGER RESET_RELIABILITY_MANAGER + START_PERIODIC_TASKS type SdsLifecycleRequest* = object operation: SdsLifecycleMsgType @@ -62,5 +63,7 @@ proc process*( of RESET_RELIABILITY_MANAGER: resetReliabilityManager(rm[]).isOkOr: return err("error processing RESET_RELIABILITY_MANAGER request: " & $error) + of START_PERIODIC_TASKS: + rm[].startPeriodicTasks() return ok("")