diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2006-10-25 11:28:08 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2006-10-25 11:28:08 +0000 |
commit | 5112ff5a8826014962656398fb3b3043a968dc6c (patch) | |
tree | 6749cec44e77b7b163969684a37318084666c4c5 /cpukit/libcsupport/src/termios.c | |
parent | 2006-10-25 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-5112ff5a8826014962656398fb3b3043a968dc6c.tar.bz2 |
2006-10-25 Jennifer Averett <jennifer@oarcorp.com>
* libcsupport/src/termios.c: Change attribute of semaphore. It was
counting interrupts not acting as a condition synchronization mutex.
Since the caller did not always need to obtain the semaphore, it was
not being decremented until there was no data. This could occur after
hours of running a system and thousands of interrupts. The code in
fillBufferQueue would spin until it had consumed all of those
semaphore counts.
Diffstat (limited to 'cpukit/libcsupport/src/termios.c')
-rw-r--r-- | cpukit/libcsupport/src/termios.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c index 1917c68735..40c8ba75a6 100644 --- a/cpukit/libcsupport/src/termios.c +++ b/cpukit/libcsupport/src/termios.c @@ -259,7 +259,7 @@ rtems_termios_open ( sc = rtems_semaphore_create ( rtems_build_name ('T', 'R', 'r', c), 0, - RTEMS_COUNTING_SEMAPHORE | RTEMS_PRIORITY, + RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_PRIORITY, RTEMS_NO_PRIORITY, &tty->rawInBuf.Semaphore); if (sc != RTEMS_SUCCESSFUL) |