Diff for /libaitsched/example/test.c between versions 1.14 and 1.16

version 1.14, 2014/06/05 22:37:29 version 1.16, 2026/05/19 15:53:56
Line 15  intptr_t Kill[1]; Line 15  intptr_t Kill[1];
 #ifdef AIO_SUPPORT  #ifdef AIO_SUPPORT
 struct iovec iv[3], wiv[3], riv[3];  struct iovec iv[3], wiv[3], riv[3];
 #endif  #endif
   volatile uint64_t total;
   
 void *event(sched_task_t *arg)  void *event(sched_task_t *arg)
 {  {
Line 136  void sig(int s) Line 137  void sig(int s)
 {  {
         switch (s) {          switch (s) {
                 case SIGTERM:                  case SIGTERM:
                   case SIGINT:
                           printf("I'm in switch case %d\n", s);
                         Kill[0]++;                          Kill[0]++;
                         break;                          break;
                   case SIGHUP:
                           printf("Test SIGHUP\n");
                           break;
         }          }
 }  }
   
   void *sigt(sched_task_t *arg)
   {
           int s = TASK_VAL(arg);
   
           printf("Received signal #%d\n", s);
   
           sig(s);
   
           schedSignalSelf(arg);
           taskExit(arg, NULL);
   }
   
   static void*
   prof(void *task, void *stage)
   {
           sched_task_t *t = task;
           struct timespec ts;
           static volatile uint64_t ns;
   
           clock_gettime(CLOCK_MONOTONIC, &ts);
           if (!stage)
                   ns = (uint64_t) ts.tv_sec * 1000000000LL + ts.tv_nsec;
           else {
                   ns = (uint64_t) ts.tv_sec * 1000000000LL + ts.tv_nsec - ns;
                   printf("Task ran for %lu ns: id=%p type=%d call=%p -> #%ld\n", ns,
                                   TASK_ID(t), TASK_TYPE(t), TASK_FUNC(t), TASK_RET(t));
   
                   total += ns;
           }
   
           return NULL;
   }
   
 int  int
 main(int argc, char **argv)  main(int argc, char **argv)
 {  {
Line 148  main(int argc, char **argv) Line 187  main(int argc, char **argv)
         int f, fd;          int f, fd;
         struct sockaddr_in sin;          struct sockaddr_in sin;
         struct timespec ts = { 20, 0 };          struct timespec ts = { 20, 0 };
//        struct timespec p = { 0, 10000000 };        struct timespec p = { 0, 10000000 };
        struct sigaction sa;//        struct sigaction sa;
         sched_task_t *t;          sched_task_t *t;
 #ifdef AIO_SUPPORT  #ifdef AIO_SUPPORT
         char *ole = malloc(BUFSIZ);          char *ole = malloc(BUFSIZ);
         register int i;          register int i;
 #endif  #endif
   
           /*
         sa.sa_handler = sig;          sa.sa_handler = sig;
         sigemptyset(&sa.sa_mask);          sigemptyset(&sa.sa_mask);
         sigaction(SIGTERM, &sa, NULL);          sigaction(SIGTERM, &sa, NULL);
           */
   
         f = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);          f = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
         if (f == -1)          if (f == -1)
Line 183  main(int argc, char **argv) Line 224  main(int argc, char **argv)
                 return 1;                  return 1;
         }          }
   
           if (argc > 1)
                   ROOT_PROFILING(root, prof);
   
         if (!schedTimer(root, timer, (void*) (intptr_t) ts.tv_sec, ts, NULL, 0)) {          if (!schedTimer(root, timer, (void*) (intptr_t) ts.tv_sec, ts, NULL, 0)) {
                 printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());                  printf("Error:: #%d - %s\n", sched_GetErrno(), sched_GetError());
                 return 4;                  return 4;
Line 295  main(int argc, char **argv) Line 339  main(int argc, char **argv)
   
         schedCallOnce(root, once, "000000", 42, NULL, 0);          schedCallOnce(root, once, "000000", 42, NULL, 0);
   
//        schedPolling(root, &p, NULL);        printf("add signals\n");
         schedSignal(root, sigt, NULL, SIGHUP, NULL, 0);
         schedSignal(root, sigt, NULL, SIGTERM, NULL, 0);
         schedSignal(root, sigt, NULL, SIGINT, NULL, 0);
 
         schedPolling(root, &p, NULL);
         schedSignalDispatch(root, 42);
         schedRun(root, Kill);          schedRun(root, Kill);
           schedSignalDispatch(root, 0);
         schedEnd(&root);          schedEnd(&root);
         sleep(1);          sleep(1);
   
Line 307  main(int argc, char **argv) Line 358  main(int argc, char **argv)
   
         close(fd);          close(fd);
         close(f);          close(f);
   
           if (argc > 1)
                   printf("Total spend of time for all tasks = %lu\n", total);
         return 0;          return 0;
 }  }

Removed from v.1.14  
changed lines
  Added in v.1.16


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>