Переглянути джерело

[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();

Завантаження…
Відмінити
Зберегти