ping: use setitimer() instead of ualarm()
function old new delta sendping_tail 218 265 +47 ualarm 79 - -79 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 1/0 up/down: 47/-79) Total: -32 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		@@ -485,9 +485,15 @@ static void sendping_tail(void (*sp)(int), int size_pkt)
 | 
			
		||||
		bb_error_msg_and_die(bb_msg_write_error);
 | 
			
		||||
 | 
			
		||||
	if (pingcount == 0 || G.ntransmitted < pingcount) {
 | 
			
		||||
		/* Didn't send all pings yet - schedule next in 1s */
 | 
			
		||||
		/* Didn't send all pings yet - schedule next in -i SEC interval */
 | 
			
		||||
		struct itimerval i;
 | 
			
		||||
		signal(SIGALRM, sp);
 | 
			
		||||
		ualarm(G.interval_us, 0);
 | 
			
		||||
		/*ualarm(G.interval_us, 0); - does not work for >=1sec on some libc */
 | 
			
		||||
		i.it_interval.tv_sec = 0;
 | 
			
		||||
		i.it_interval.tv_usec = 0;
 | 
			
		||||
		i.it_value.tv_sec = G.interval_us / 1000000;
 | 
			
		||||
		i.it_value.tv_usec = G.interval_us % 1000000;
 | 
			
		||||
		setitimer(ITIMER_REAL, &i, NULL);
 | 
			
		||||
	} else { /* -c NN, and all NN are sent */
 | 
			
		||||
		/* Wait for the last ping to come back.
 | 
			
		||||
		 * -W timeout: wait for a response in seconds.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user