[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Mint 1.10: Bug in Fselect()



This makes Fselect interruptible by signals. This feature was present
in MiNT 1.09, but was lost in 1.10.

Without this patch inetd and some other programs do not work correctly.

Kay.

--8<-------------- cut here ----------------------------
*** dosfile.c.orig	Mon Mar  7 20:09:06 1994
--- dosfile.c	Mon Mar  7 20:34:44 1994
***************
*** 1040,1046 ****
  	/* curproc->wait_cond changes when data arrives or the timeout happens */
  		while (curproc->wait_cond == (long)wakeselect) {
  			TRACE(("sleeping in Fselect"));
! 			sleep(SELECT_Q, (long)wakeselect);
  		}
  		spl(sr);
  
--- 1040,1049 ----
  	/* curproc->wait_cond changes when data arrives or the timeout happens */
  		while (curproc->wait_cond == (long)wakeselect) {
  			TRACE(("sleeping in Fselect"));
! 			if (sleep(SELECT_Q, (long)wakeselect)) {
! 				/* interrupted by signals */
! 				break;
! 			}
  		}
  		spl(sr);
  
--8<-------------- cut here ----------------------------