This is an automated email from the ASF dual-hosted git repository.

pnoltes pushed a commit to branch feature/scheduled_event_on_event_thread
in repository https://gitbox.apache.org/repos/asf/celix.git

commit ba22bf2260dc7d20331d92850501daded9ed9559
Author: Pepijn Noltes <[email protected]>
AuthorDate: Thu Jun 15 22:36:07 2023 +0200

    Update timing of scheduled event tests
---
 libs/framework/gtest/src/ScheduledEventTestSuite.cc | 20 ++++++++++----------
 libs/framework/src/celix_scheduled_event.c          |  2 +-
 libs/framework/src/framework.c                      |  3 +--
 3 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/libs/framework/gtest/src/ScheduledEventTestSuite.cc 
b/libs/framework/gtest/src/ScheduledEventTestSuite.cc
index 8940c2ff..9b52fc2e 100644
--- a/libs/framework/gtest/src/ScheduledEventTestSuite.cc
+++ b/libs/framework/gtest/src/ScheduledEventTestSuite.cc
@@ -232,8 +232,8 @@ TEST_F(ScheduledEventTestSuite, WakeUpEventTest) {
     std::atomic<int> count{0};
     celix_scheduled_event_options_t opts{};
     opts.name = "test wakeup";
-    opts.initialDelayInSeconds = 0.01;
-    opts.intervalInSeconds = 0.01;
+    opts.initialDelayInSeconds = 0.05;
+    opts.intervalInSeconds = 0.05;
     opts.callbackData = static_cast<void*>(&count);
     opts.callback = [](void* countPtr) {
         auto* count = static_cast<std::atomic<int>*>(countPtr);
@@ -251,13 +251,13 @@ TEST_F(ScheduledEventTestSuite, WakeUpEventTest) {
     ASSERT_EQ(CELIX_SUCCESS, status);
 
     // When waiting a bit to let the scheduled event trigger
-    std::this_thread::sleep_for(std::chrono::milliseconds{2});
+    std::this_thread::sleep_for(std::chrono::milliseconds{5});
 
     // Then the count is increased
     EXPECT_EQ(1, count.load());
 
     // When waiting longer than the interval
-    std::this_thread::sleep_for(std::chrono::milliseconds{11});
+    std::this_thread::sleep_for(std::chrono::milliseconds{55});
 
     // Then the count is increased
     EXPECT_EQ(2, count.load());
@@ -269,7 +269,7 @@ TEST_F(ScheduledEventTestSuite, WakeUpEventTest) {
     ASSERT_EQ(CELIX_SUCCESS, status);
 
     // When waiting a bit to let the scheduled event trigger
-    std::this_thread::sleep_for(std::chrono::milliseconds{2});
+    std::this_thread::sleep_for(std::chrono::milliseconds{5});
 
     // Then the count is increased
     EXPECT_EQ(3, count.load());
@@ -301,7 +301,7 @@ TEST_F(ScheduledEventTestSuite, WakeUpOneShotEventTest) {
     ASSERT_EQ(CELIX_SUCCESS, status);
 
     // When waiting a bit to ensure the scheduled event is woken up
-    std::this_thread::sleep_for(std::chrono::milliseconds{2});
+    std::this_thread::sleep_for(std::chrono::milliseconds{5});
 
     // And the count is increased
     EXPECT_EQ(1, count.load());
@@ -336,7 +336,7 @@ TEST_F(ScheduledEventTestSuite, CxxScheduledEventTest) {
     ASSERT_EQ(0, count.load());
 
     // When waiting longer than the initial delay
-    std::this_thread::sleep_for(std::chrono::milliseconds{60});
+    std::this_thread::sleep_for(std::chrono::milliseconds{55});
 
     // Then the count is increased
     EXPECT_EQ(1, count.load());
@@ -345,7 +345,7 @@ TEST_F(ScheduledEventTestSuite, CxxScheduledEventTest) {
     event.wakeup();
 
     // And waiting a bit to ensure the event is called
-    std::this_thread::sleep_for(std::chrono::milliseconds{2});
+    std::this_thread::sleep_for(std::chrono::milliseconds{5});
 
     // Then the count is increased
     EXPECT_EQ(2, count.load());
@@ -354,7 +354,7 @@ TEST_F(ScheduledEventTestSuite, CxxScheduledEventTest) {
     event.wakeup();
 
     // And waiting a bit to ensure the event is called
-    std::this_thread::sleep_for(std::chrono::milliseconds{2});
+    std::this_thread::sleep_for(std::chrono::milliseconds{5});
 
     // Then the count is increased
     EXPECT_EQ(3, count.load());
@@ -366,7 +366,7 @@ TEST_F(ScheduledEventTestSuite, CxxScheduledEventTest) {
     event.cancel();
 
     // And waiting longer than the interval
-    std::this_thread::sleep_for(std::chrono::milliseconds{60});
+    std::this_thread::sleep_for(std::chrono::milliseconds{55});
 
     // Then the count is not increased
     EXPECT_EQ(3, count.load());
diff --git a/libs/framework/src/celix_scheduled_event.c 
b/libs/framework/src/celix_scheduled_event.c
index 118858d9..2ab4ee11 100644
--- a/libs/framework/src/celix_scheduled_event.c
+++ b/libs/framework/src/celix_scheduled_event.c
@@ -119,7 +119,7 @@ celix_scheduled_event_t* 
celix_scheduledEvent_create(celix_framework_logger_t* l
     event->useCount = 1;
     event->callCount = 0;
     event->isRemoved = false;
-    clock_gettime(CLOCK_MONOTONIC, &event->lastScheduledEventTime);
+    event->lastScheduledEventTime = celix_gettime(CLOCK_REALTIME);
     event->processForWakeup = false;
 
     celixThreadMutex_create(&event->mutex, NULL);
diff --git a/libs/framework/src/framework.c b/libs/framework/src/framework.c
index a6cc385d..f9b3dcdf 100644
--- a/libs/framework/src/framework.c
+++ b/libs/framework/src/framework.c
@@ -1426,8 +1426,7 @@ static inline void fw_handleEvents(celix_framework_t* 
framework) {
  * @brief Process all scheduled events.
  */
 static double celix_framework_processScheduledEvents(celix_framework_t* fw) {
-    struct timespec ts;
-    clock_gettime(CLOCK_MONOTONIC, &ts);
+    struct timespec ts = celix_gettime(CLOCK_REALTIME);
 
     double nextClosestScheduledEvent;
     celix_scheduled_event_t* callEvent;

Reply via email to