[BACK]Return to file.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / sndiod

Diff for /src/usr.bin/sndiod/file.c between version 1.6 and 1.7

version 1.6, 2015/02/16 06:26:24 version 1.7, 2015/07/17 08:14:48
Line 44 
Line 44 
  *   *
  */   */
   
 #include <sys/time.h>  
 #include <sys/types.h>  #include <sys/types.h>
   
 #include <err.h>  #include <err.h>
Line 60 
Line 59 
 #include "utils.h"  #include "utils.h"
   
 #define MAXFDS 100  #define MAXFDS 100
 #define TIMER_USEC 10000  #define TIMER_MSEC 5
   
 void timo_update(unsigned int);  void timo_update(unsigned int);
 void timo_init(void);  void timo_init(void);
 void timo_done(void);  void timo_done(void);
 void file_sigalrm(int);  
   
 struct timespec file_ts;  struct timespec file_ts;
 struct file *file_list;  struct file *file_list;
Line 353 
Line 351 
         file_utime += sleepts.tv_nsec - file_ts.tv_nsec;          file_utime += sleepts.tv_nsec - file_ts.tv_nsec;
 #endif  #endif
         if (!immed) {          if (!immed) {
                 res = poll(pfds, nfds, -1);                  res = poll(pfds, nfds, TIMER_MSEC);
                 if (res < 0 && errno != EINTR)                  if (res < 0 && errno != EINTR)
                         err(1, "poll");                          err(1, "poll");
 #ifdef DEBUG  #ifdef DEBUG
Line 418 
Line 416 
         return 1;          return 1;
 }  }
   
 /*  
  * handler for SIGALRM, invoked periodically  
  */  
 void  void
 file_sigalrm(int i)  
 {  
         /* nothing to do, we only want poll() to return EINTR */  
 }  
   
   
 void  
 filelist_init(void)  filelist_init(void)
 {  {
         static struct sigaction sa;  
         struct itimerval it;  
         sigset_t set;          sigset_t set;
   
         sigemptyset(&set);          sigemptyset(&set);
Line 444 
Line 430 
                 perror("clock_gettime");                  perror("clock_gettime");
                 exit(1);                  exit(1);
         }          }
         sa.sa_flags = SA_RESTART;  
         sa.sa_handler = file_sigalrm;  
         sigfillset(&sa.sa_mask);  
         if (sigaction(SIGALRM, &sa, NULL) < 0) {  
                 perror("sigaction");  
                 exit(1);  
         }  
         it.it_interval.tv_sec = 0;  
         it.it_interval.tv_usec = TIMER_USEC;  
         it.it_value.tv_sec = 0;  
         it.it_value.tv_usec = TIMER_USEC;  
         if (setitimer(ITIMER_REAL, &it, NULL) < 0) {  
                 perror("setitimer");  
                 exit(1);  
         }  
         log_sync = 0;          log_sync = 0;
         timo_init();          timo_init();
 }  }
Line 466 
Line 437 
 void  void
 filelist_done(void)  filelist_done(void)
 {  {
         struct itimerval it;  
 #ifdef DEBUG  #ifdef DEBUG
         struct file *f;          struct file *f;
   
Line 480 
Line 450 
         log_sync = 1;          log_sync = 1;
         log_flush();          log_flush();
 #endif  #endif
         timerclear(&it.it_value);  
         timerclear(&it.it_interval);  
         if (setitimer(ITIMER_REAL, &it, NULL) < 0) {  
                 perror("setitimer");  
                 exit(1);  
         }  
         timo_done();          timo_done();
 }  }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7