diff options
author | Mark Johannes <Mark.Johannes@OARcorp.com> | 1996-08-15 16:24:44 +0000 |
---|---|---|
committer | Mark Johannes <Mark.Johannes@OARcorp.com> | 1996-08-15 16:24:44 +0000 |
commit | 948721cd19ef3fabecd08211516c994269fd3e43 (patch) | |
tree | 39015190469085ec029e888d4dec01ec50f530e1 /c | |
parent | fixed typo for NOTSUP -> ENOTSUP (diff) | |
download | rtems-948721cd19ef3fabecd08211516c994269fd3e43.tar.bz2 |
pthread_kill: moved check for SA_SIGINFO to allow for validation of all
parameters. Also changed returns to macro of -1 and errno set.
Diffstat (limited to 'c')
-rw-r--r-- | c/src/exec/posix/src/psignal.c | 14 |
1 files changed, 7 insertions, 7 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(); |