summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/score/include/rtems/score/thread.h9
-rw-r--r--cpukit/score/include/rtems/score/threadimpl.h3
2 files changed, 6 insertions, 6 deletions
diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h
index b8e0e00ae1..d69967bde8 100644
--- a/cpukit/score/include/rtems/score/thread.h
+++ b/cpukit/score/include/rtems/score/thread.h
@@ -518,16 +518,15 @@ typedef struct {
* The thread life states are orthogonal to the thread states used for
* synchronization primitives and blocking operations. They reflect the state
* changes triggered with thread restart and delete requests.
+ *
+ * The individual state values must be a power of two to allow use of bit
+ * operations to manipulate and evaluate the thread life state.
*/
typedef enum {
THREAD_LIFE_NORMAL = 0x0,
THREAD_LIFE_PROTECTED = 0x1,
THREAD_LIFE_RESTARTING = 0x2,
- THREAD_LIFE_PROTECTED_RESTARTING = 0x3,
- THREAD_LIFE_TERMINATING = 0x4,
- THREAD_LIFE_PROTECTED_TERMINATING = 0x5,
- THREAD_LIFE_RESTARTING_TERMINATING = 0x6,
- THREAD_LIFE_PROTECTED_RESTARTING_TERMINATING = 0x7
+ THREAD_LIFE_TERMINATING = 0x4
} Thread_Life_state;
/**
diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h
index 1ea49dd60e..3fdc2e8615 100644
--- a/cpukit/score/include/rtems/score/threadimpl.h
+++ b/cpukit/score/include/rtems/score/threadimpl.h
@@ -943,7 +943,8 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_life_changing(
Thread_Life_state life_state
)
{
- return ( life_state & THREAD_LIFE_RESTARTING_TERMINATING ) != 0;
+ return ( life_state
+ & ( THREAD_LIFE_RESTARTING | THREAD_LIFE_TERMINATING ) ) != 0;
}
/**