From 709f38a97287ff1aa8e8c0668c2d066e711db87c Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 13 Apr 2016 06:48:58 +0200 Subject: score: Use chain iterator for user extensions Add a lock and use a chain iterator for safe iteration during concurrent user extension addition and removal. Ensure that dynamically added thread delete and fatal extensions are called in reverse order. Update #2555. Update #2692. --- cpukit/score/include/rtems/score/thread.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'cpukit/score/include/rtems/score/thread.h') diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h index d9f1eb2d6d..4da4a341d6 100644 --- a/cpukit/score/include/rtems/score/thread.h +++ b/cpukit/score/include/rtems/score/thread.h @@ -48,6 +48,8 @@ struct Scheduler_Control; struct Scheduler_Node; +struct User_extensions_Iterator; + #ifdef __cplusplus extern "C" { #endif @@ -898,6 +900,11 @@ struct _Thread_Control { */ struct _pthread_cleanup_context *last_cleanup_context; + /** + * @brief LIFO list of user extensions iterators. + */ + struct User_extensions_Iterator *last_user_extensions_iterator; + /** * @brief Variable length array of user extension pointers. * -- cgit v1.2.3