[Linux-cluster] [openais]timer_attributes.type is missing

zhuyj zyjzyj2000 at gmail.com
Fri Mar 1 04:55:06 UTC 2013


Hi,

   If req_lib_tmr_timerreschedule->timer_attributes.type is
   SA_TIME_ABSOLUTE, an absolute time value must be higher
   than the current absolute time.According to the type, we
   will compare the current time with an absolute time. If
   the type is SA_TIME_ABSOLUTE, we will compare. Or else,
   we do nothing;

diff -urpN a/services/tmr.c b/services/tmr.c
--- a/services/tmr.c
+++ b/services/tmr.c
@@ -442,7 +442,8 @@ static void message_handler_req_lib_tmr_

      current_time = (SaTimeT)(api->timer_time_get());

-    if (current_time > 
req_lib_tmr_timerreschedule->timer_attributes.initialExpirationTime) {
+    if ((SA_TIME_ABSOLUTE == 
req_lib_tmr_timerreschedule->timer_attributes.type) &&
+        (current_time > 
req_lib_tmr_timerreschedule->timer_attributes.initialExpirationTime)) {
          error = SA_AIS_ERR_INVALID_PARAM;
          goto error_put;
      }
diff -urpN a/test/testtmr.c b/test/testtmr.c
--- a/test/testtmr.c
+++ b/test/testtmr.c
@@ -86,8 +86,8 @@ int main (void)
      SaTmrHandleT handle;
      SaSelectionObjectT select_obj;
      SaTmrTimerAttributesT attrs;
-    SaTmrTimerAttributesT attrs_a = { SA_TIME_DURATION, TMR_30_SECONDS, 
0 };
-    SaTmrTimerAttributesT attrs_b = { SA_TIME_DURATION, TMR_30_SECONDS, 
0 };
+    SaTmrTimerAttributesT attrs_a = { SA_TIME_DURATION, TMR_30_SECONDS, 
TMR_30_SECONDS };
+    SaTmrTimerAttributesT attrs_b = { SA_TIME_DURATION, TMR_30_SECONDS, 
TMR_30_SECONDS };
      SaTmrTimerAttributesT new_attrs_a = { SA_TIME_DURATION, 
TMR_10_SECONDS, TMR_10_SECONDS };
      SaTmrTimerAttributesT new_attrs_b = { SA_TIME_DURATION, 
TMR_20_SECONDS, TMR_20_SECONDS };
      SaTmrTimerIdT id_a;




More information about the Linux-cluster mailing list