From fb11263c3ebb8eb68d3e9fb33d85b0cea14bc386 Mon Sep 17 00:00:00 2001 From: Rahman Mousavian Date: Tue, 26 Oct 2021 02:38:41 +1100 Subject: [PATCH] Initilizing once, upon app start Signed-off-by: Rahman Mousavian --- collector/scheduled_task.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/collector/scheduled_task.go b/collector/scheduled_task.go index 470472c4..c083e2fc 100644 --- a/collector/scheduled_task.go +++ b/collector/scheduled_task.go @@ -70,6 +70,18 @@ func init() { func NewScheduledTask() (Collector, error) { const subsystem = "scheduled_task" + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + err := ole.CoInitializeEx(0, ole.COINIT_MULTITHREADED) + if err != nil { + code := err.(*ole.OleError).Code() + if code != ole.S_OK && code != S_FALSE { + return nil, err + } + } + defer ole.CoUninitialize() + return &ScheduledTaskCollector{ LastResult: prometheus.NewDesc( prometheus.BuildFQName(Namespace, subsystem, "last_result"), @@ -165,18 +177,6 @@ const SCHEDULED_TASK_PROGRAM_ID = "Schedule.Service.1" const S_FALSE = 0x00000001 func getScheduledTasks() (scheduledTasks ScheduledTasks, err error) { - runtime.LockOSThread() - defer runtime.UnlockOSThread() - - err := ole.CoInitializeEx(0, ole.COINIT_MULTITHREADED) - if err != nil { - code := err.(*ole.OleError).Code() - if code != ole.S_OK && code != S_FALSE { - return scheduledTasks, err - } - } - defer ole.CoUninitialize() - schedClassID, err := ole.ClassIDFrom(SCHEDULED_TASK_PROGRAM_ID) if err != nil { return scheduledTasks, err