diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-25 13:11:59 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-25 13:11:59 +0200 |
commit | 43a14eba2e85810f8f0f6187dadc37a2932bd6b9 (patch) | |
tree | b0f5906923858c51a246c00414068381dc2adaef /freebsd/sys/kern/sys_generic.c | |
parent | testsuite: Update due to API changes (diff) | |
download | rtems-libbsd-43a14eba2e85810f8f0f6187dadc37a2932bd6b9.tar.bz2 |
Update due to API changes
Diffstat (limited to 'freebsd/sys/kern/sys_generic.c')
-rw-r--r-- | freebsd/sys/kern/sys_generic.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/freebsd/sys/kern/sys_generic.c b/freebsd/sys/kern/sys_generic.c index b6239a42..85b99f94 100644 --- a/freebsd/sys/kern/sys_generic.c +++ b/freebsd/sys/kern/sys_generic.c @@ -1920,23 +1920,21 @@ force_select_timeout(Thread_Control *thread) rtems_status_code rtems_bsd_force_select_timeout(rtems_id task_id) { Thread_Control *thread; - Objects_Locations location; + ISR_lock_Context lock_context; - thread = _Thread_Get(task_id, &location); - switch (location) { - case OBJECTS_LOCAL: - force_select_timeout(thread); - _Objects_Put(&thread->Object); - break; + thread = _Thread_Get(task_id, &lock_context); + if (thread == NULL) { #if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); + if (_Thread_MP_Is_remote(id)) { return (RTEMS_ILLEGAL_ON_REMOTE_OBJECT); + } #endif - default: - return (RTEMS_INVALID_ID); + + return (RTEMS_INVALID_ID); } + _ISR_lock_ISR_enable(&lock_context); + force_select_timeout(thread); return (RTEMS_SUCCESSFUL); } #endif /* __rtems__ */ |