summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--c/src/exec/posix/src/psignal.c14
-rw-r--r--cpukit/posix/src/psignal.c14
2 files changed, 14 insertions, 14 deletions
diff --git a/c/src/exec/posix/src/psignal.c b/c/src/exec/posix/src/psignal.c
index 622f827c69..8ccc89b6fa 100644
--- a/c/src/exec/posix/src/psignal.c
+++ b/c/src/exec/posix/src/psignal.c
@@ -1254,14 +1254,11 @@ int pthread_kill(
* RTEMS does not support sending a siginfo signal to a specific thread.
*/
- if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO )
- return ENOSYS;
-
the_thread = _POSIX_Threads_Get( thread, &location );
switch ( location ) {
case OBJECTS_ERROR:
case OBJECTS_REMOTE:
- return ESRCH;
+ set_errno_and_return_minus_one( ESRCH );
case OBJECTS_LOCAL:
/*
* If sig == 0 then just validate arguments
@@ -1271,14 +1268,17 @@ int pthread_kill(
if ( sig ) {
+ if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO )
+ set_errno_and_return_minus_one( ENOSYS );
+
/* XXX critical section */
api->signals_pending |= signo_to_mask( sig );
(void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL );
- }
- _Thread_Enable_dispatch();
- return 0;
+ }
+ _Thread_Enable_dispatch();
+ return 0;
}
return POSIX_BOTTOM_REACHED();
diff --git a/cpukit/posix/src/psignal.c b/cpukit/posix/src/psignal.c
index 622f827c69..8ccc89b6fa 100644
--- a/cpukit/posix/src/psignal.c
+++ b/cpukit/posix/src/psignal.c
@@ -1254,14 +1254,11 @@ int pthread_kill(
* RTEMS does not support sending a siginfo signal to a specific thread.
*/
- if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO )
- return ENOSYS;
-
the_thread = _POSIX_Threads_Get( thread, &location );
switch ( location ) {
case OBJECTS_ERROR:
case OBJECTS_REMOTE:
- return ESRCH;
+ set_errno_and_return_minus_one( ESRCH );
case OBJECTS_LOCAL:
/*
* If sig == 0 then just validate arguments
@@ -1271,14 +1268,17 @@ int pthread_kill(
if ( sig ) {
+ if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO )
+ set_errno_and_return_minus_one( ENOSYS );
+
/* XXX critical section */
api->signals_pending |= signo_to_mask( sig );
(void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL );
- }
- _Thread_Enable_dispatch();
- return 0;
+ }
+ _Thread_Enable_dispatch();
+ return 0;
}
return POSIX_BOTTOM_REACHED();