Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 26ba033f3de93f808197f1611460d3c0 > files > 3

xmris-4.0.5-7mdv2009.0.src.rpm

diff -p -up xmris.4.0.5/timer.c.orig xmris.4.0.5/timer.c
--- xmris.4.0.5/timer.c.orig	2008-05-06 15:19:12.000000000 -0300
+++ xmris.4.0.5/timer.c	2008-05-06 15:21:00.000000000 -0300
@@ -303,14 +303,13 @@ extern VOIDFUNC timer_close FUNCARGVOID
 #ifndef TRANSPUTER
   if(data.busywait == False)
     {
-      MASK      mask;
+      sigset_t	mask;
       
-      signal_hold(SIGALRM, &mask);
+      sigprocmask(0, NULL, &mask);
       timer.interval.it_value.tv_usec = 0;
       timer.interval.it_interval.tv_usec = 0;
       while(!timer.elapsed)
-	signal_pause(&mask);
-      signal_release(&mask);
+	sigsuspend(&mask);
       setitimer(ITIMER_REAL, &timer.interval, (struct itimerval *)NULL);
 #ifdef USESIGSET
       sigset(SIGALRM, timer.handler);
@@ -519,9 +518,9 @@ extern VOIDFUNC timer_wait FUNCARGVOID
   /*}}}*/
 #else
   {
-    MASK      mask;
-    
-    signal_hold(SIGALRM, &mask);
+    sigset_t	mask;
+
+    sigprocmask(0, NULL, &mask);
     if(!timer.elapsed && data.busywait == False)
       {
 	point = -1;
@@ -530,7 +529,7 @@ extern VOIDFUNC timer_wait FUNCARGVOID
 #endif
 	timer.waiting = 1;
 	while(timer.waiting)
-	  signal_pause(&mask);
+	  sigsuspend(&mask);
 #ifndef NDEBUG
 	timer_debug("Done wait");
 #endif
@@ -554,7 +553,6 @@ extern VOIDFUNC timer_wait FUNCARGVOID
 	    timer.missed++;
 	  }
       }
-    signal_release(&mask);
   }
 #ifdef BUSYWAIT
   /*{{{  busywait?*/