diff options
Diffstat (limited to 'lib/libc/stdio/getchar.c')
| -rw-r--r-- | lib/libc/stdio/getchar.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/libc/stdio/getchar.c b/lib/libc/stdio/getchar.c index d26c3c6b..d5e08cd1 100644 --- a/lib/libc/stdio/getchar.c +++ b/lib/libc/stdio/getchar.c @@ -1,9 +1,12 @@ -#include <libc.h> // for weak_reference -#include <stdio.h> // for fgetc, getchar, getchar_unlocked, stdin +#include <stdio.h> int getchar(void) { - return fgetc(stdin); -} + int r; + + flockfile(stdin); + r = getchar_unlocked(); + funlockfile(stdin); -weak_reference(getchar, getchar_unlocked); + return r; +} |
