introduce safe_poll (fixes a problem in top)
function old new delta safe_poll - 77 +77 svlogd_main 1470 1466 -4 zcip_main 1530 1524 -6 forkexec 1345 1338 -7 decode_format_string 795 788 -7 collect_blk 474 467 -7 buffer_pread 540 532 -8 tftp 1182 1172 -10 microcom_main 763 749 -14 arpping 441 424 -17 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/9 up/down: 77/-80) Total: -3 bytes text data bss dec hex filename 770162 1034 10404 781600 bed20 busybox_old 770158 1034 10404 781596 bed1c busybox_unstripped
This commit is contained in:
		@@ -2139,7 +2139,7 @@ static int mysleep(int hund)	// sleep for 'h' 1/100 seconds
 | 
			
		||||
 | 
			
		||||
	pfd[0].fd = 0;
 | 
			
		||||
	pfd[0].events = POLLIN;
 | 
			
		||||
	return poll(pfd, 1, hund*10) > 0;
 | 
			
		||||
	return safe_poll(pfd, 1, hund*10) > 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define readbuffer bb_common_bufsiz1
 | 
			
		||||
@@ -2221,7 +2221,7 @@ static char readit(void)	// read (maybe cursor) key from stdin
 | 
			
		||||
			pfd[0].events = POLLIN;
 | 
			
		||||
			// Wait 50 ms
 | 
			
		||||
			// keep reading while there are input chars and room in buffer
 | 
			
		||||
			while (poll(pfd, 1, 50) > 0 && n <= (MAX_LINELEN - 5)) {
 | 
			
		||||
			while (safe_poll(pfd, 1, 50) > 0 && n <= (MAX_LINELEN - 5)) {
 | 
			
		||||
				// read the rest of the ESC string
 | 
			
		||||
				int r = read(0, readbuffer + n, MAX_LINELEN - n);
 | 
			
		||||
				if (r > 0)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user