patch-2.1.65 linux/fs/select.c
Next file: linux/include/asm-alpha/softirq.h
Previous file: linux/fs/nfsd/vfs.c
Back to the patch index
Back to the overall index
-  Lines: 18
-  Date:
Mon Nov 17 13:37:08 1997
-  Orig file: 
v2.1.64/linux/fs/select.c
-  Orig date: 
Wed Sep 24 20:05:48 1997
diff -u --recursive --new-file v2.1.64/linux/fs/select.c linux/fs/select.c
@@ -328,6 +328,17 @@
 	zero_fd_set(n, &fds->res_out);
 	zero_fd_set(n, &fds->res_ex);
 	error = do_select(n, fds, wait);
+	if (tvp && !(current->personality & STICKY_TIMEOUTS)) {
+		unsigned long timeout = current->timeout - jiffies - 1;
+		unsigned long sec = 0, usec = 0;
+		if ((long) timeout > 0) {
+			sec = timeout / HZ;
+			usec = timeout % HZ;
+			usec *= (1000000/HZ);
+		}
+		put_user(sec, &tvp->tv_sec);
+		put_user(usec, &tvp->tv_usec);
+	}
 	current->timeout = 0;
 	if (error < 0)
 		goto out;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov