2007-03-05 Joel Sherrill <joel@OARcorp.com>

PR 1221/cpukit
	* posix/src/pthreadequal.c: Fix critical section nesting.
This commit is contained in:
Joel Sherrill
2007-03-05 20:53:27 +00:00
parent 81850181d2
commit ff5fefb47f
2 changed files with 13 additions and 5 deletions

View File

@@ -1,3 +1,8 @@
2007-03-05 Joel Sherrill <joel@OARcorp.com>
PR 1221/cpukit
* posix/src/pthreadequal.c: Fix critical section nesting.
2007-02-22 Ralf Corsepius <ralf.corsepius@rtems.org> 2007-02-22 Ralf Corsepius <ralf.corsepius@rtems.org>
* libcsupport/Makefile.am: Move getpagesize.c to newlib-only * libcsupport/Makefile.am: Move getpagesize.c to newlib-only

View File

@@ -3,7 +3,7 @@
* *
* NOTE: POSIX does not define the behavior when either thread id is invalid. * NOTE: POSIX does not define the behavior when either thread id is invalid.
* *
* COPYRIGHT (c) 1989-1999. * COPYRIGHT (c) 1989-2007.
* On-Line Applications Research Corporation (OAR). * On-Line Applications Research Corporation (OAR).
* *
* The license and distribution terms for this file may be * The license and distribution terms for this file may be
@@ -55,6 +55,7 @@ int pthread_equal(
switch ( location ) { switch ( location ) {
case OBJECTS_ERROR: case OBJECTS_ERROR:
case OBJECTS_REMOTE: case OBJECTS_REMOTE:
/* return status == 0 */
break; break;
case OBJECTS_LOCAL: case OBJECTS_LOCAL:
@@ -67,16 +68,18 @@ int pthread_equal(
switch ( location ) { switch ( location ) {
case OBJECTS_ERROR: case OBJECTS_ERROR:
case OBJECTS_REMOTE: case OBJECTS_REMOTE:
/* t1 must have been valid so exit the critical section */
_Thread_Enable_dispatch();
/* return status == 0 */
break; break;
case OBJECTS_LOCAL: case OBJECTS_LOCAL:
status = _Objects_Are_ids_equal( t1, t2 ); status = _Objects_Are_ids_equal( t1, t2 );
break; _Thread_Unnest_dispatch();
_Thread_Enable_dispatch();
break;
} }
_Thread_Unnest_dispatch();
break; break;
} }
_Thread_Enable_dispatch();
return status; return status;
#endif #endif
} }