L1-L2 Integration fixes.[Issue-ID: ODUHIGH-252]
[o-du/l2.git] / src / phy_stub / l1_bdy2.c
index 1db65f4..2edaa5b 100644 (file)
 
 /* This file handles slot indication */
 
-#include <stdio.h>
-#include <unistd.h>
-#include <pthread.h>
+#include "common_def.h"
 #include "lphy_stub.h"
 #include "du_log.h"
 
 uint16_t l1BuildAndSendSlotIndication();
+pthread_t thread = 0;
 
 void *GenerateTicks(void *arg)
 {
-   uint8_t counter = 100;
-   while(counter)
+   int     milisec = 1;        /* 1ms */
+   struct timespec req = {0};
+
+   req.tv_sec = 0;
+   req.tv_nsec = milisec * 1000000L;
+
+   while(1)
    {
-      sleep(1);
+      nanosleep(&req, (struct timespec *)NULL);
+      
       /* Send Slot indication indication to lower mac */
       l1BuildAndSendSlotIndication();
-      counter--;
    }
    return((void *)NULLP);
 }
 
-void duStartSlotIndicaion()
+void l1HdlSlotIndicaion(bool stopSlotInd)
 {
-   pthread_t thread;
    int ret;
 
-   ret = pthread_create(&thread, NULL, GenerateTicks, NULL);
-   if(ret)
+   if(!stopSlotInd)
+   {
+      ret = pthread_create(&thread, NULL, GenerateTicks, NULL);
+      if(ret)
+      {
+         DU_LOG("\nPHY_STUB: Unable to create thread");
+      }
+   }
+   else
    {
-      DU_LOG("\nPHY_STUB: Unable to create thread");
+      ret = pthread_cancel(thread);
+      if(ret)
+      {
+         DU_LOG("\nPHY_STUB: Unable to stop thread");
+      }
    }
 }