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.
This commit is contained in:
Joel Sherrill
2006-10-25 11:28:08 +00:00
parent 1e3518b16c
commit 5112ff5a88
2 changed files with 11 additions and 1 deletions
+10
View File
@@ -1,3 +1,13 @@
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.
2006-10-23 Joel Sherrill <joel@OARcorp.com>
* configure.ac, score/cpu/Makefile.am: Add bfin.
+1 -1
View File
@@ -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)