From 9de905b22f7c9c57eef7021ea7737339e5d6d58e Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Mon, 19 Jun 2017 16:14:32 -0700 Subject: 41322: reduce number of changes in signal queuing/blocking state during shingetline() to improve read speed --- Src/input.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'Src') diff --git a/Src/input.c b/Src/input.c index 92abaec92..9787dedf6 100644 --- a/Src/input.c +++ b/Src/input.c @@ -144,9 +144,10 @@ shingetline(void) int q = queue_signal_level(); p = buf; + winch_unblock(); + dont_queue_signals(); for (;;) { - winch_unblock(); - dont_queue_signals(); + /* Can't fgets() here because we need to accept '\0' bytes */ do { errno = 0; c = fgetc(bshin); @@ -176,7 +177,8 @@ shingetline(void) ll += p - buf; line[ll] = '\0'; p = buf; - unqueue_signals(); + winch_unblock(); + dont_queue_signals(); } } } -- cgit 1.4.1