Преглед на файлове

[console] Avoid timer wraparound problems in getchar_timeout()

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown преди 14 години
родител
ревизия
2969a8567f
променени са 1 файла, в които са добавени 2 реда и са изтрити 2 реда
  1. 2
    2
      src/core/getkey.c

+ 2
- 2
src/core/getkey.c Целия файл

@@ -39,9 +39,9 @@ FILE_LICENCE ( GPL2_OR_LATER );
39 39
  * @ret character	Character read from console
40 40
  */
41 41
 int getchar_timeout ( unsigned long timeout ) {
42
-	unsigned long expiry = ( currticks() + timeout );
42
+	unsigned long start = currticks();
43 43
 
44
-	while ( currticks() < expiry ) {
44
+	while ( ( currticks() - start ) < timeout ) {
45 45
 		step();
46 46
 		if ( iskey() )
47 47
 			return getchar();

Loading…
Отказ
Запис