summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/rtems
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-08 11:08:24 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-23 11:00:28 +0100
commitc69a70a597ec5df75a51bfa39c14198a5c5fb22e (patch)
tree345bef38c0158a520c437d363e6b52ad276e03f0 /cpukit/include/rtems/rtems
parentscore: Fix assertion in SMP scheduler framework (diff)
downloadrtems-c69a70a597ec5df75a51bfa39c14198a5c5fb22e.tar.bz2
rtems: Fix rtems_scheduler_remove_processor()
Return an error status for the following error condition in rtems_scheduler_remove_processor(): While an attempt is made to remove a processor from a scheduler, while the processor is the only processor owned by the scheduler, if a thread exists which uses the scheduler as a helping scheduler, then the processor shall not be removed. The reason is that ask for help requests and withdraw node requests are processed asynchronously in any order. An ask for help request carried out on a scheduler without a processor is undefined behaviour. Update error status description. Update #4544.
Diffstat (limited to 'cpukit/include/rtems/rtems')
-rw-r--r--cpukit/include/rtems/rtems/tasks.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/cpukit/include/rtems/rtems/tasks.h b/cpukit/include/rtems/rtems/tasks.h
index 0392586759..8e87bfd14a 100644
--- a/cpukit/include/rtems/rtems/tasks.h
+++ b/cpukit/include/rtems/rtems/tasks.h
@@ -867,9 +867,12 @@ rtems_status_code rtems_scheduler_add_processor(
*
* @retval ::RTEMS_INVALID_NUMBER The processor was not owned by the scheduler.
*
- * @retval ::RTEMS_RESOURCE_IN_USE The set of processors owned by the scheduler
- * would have been empty after the processor removal and there was at least
- * one non-idle task that used this scheduler as its home scheduler.
+ * @retval ::RTEMS_RESOURCE_IN_USE The processor was required by at least one
+ * non-idle task that used the scheduler as its home scheduler.
+ *
+ * @retval ::RTEMS_RESOURCE_IN_USE The processor was the last processor owned
+ * by the scheduler and there was at least one task that used the scheduler
+ * as a helping scheduler.
*
* @par Notes
* Removing a processor from a scheduler is a complex operation that involves