summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/userextremoveset.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/src/userextremoveset.c')
-rw-r--r--cpukit/score/src/userextremoveset.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpukit/score/src/userextremoveset.c b/cpukit/score/src/userextremoveset.c
index 5b3fdd1aea..b25cc344b4 100644
--- a/cpukit/score/src/userextremoveset.c
+++ b/cpukit/score/src/userextremoveset.c
@@ -20,16 +20,21 @@
#endif
#include <rtems/score/userextimpl.h>
-#include <rtems/score/objectimpl.h>
#include <rtems/score/percpu.h>
void _User_extensions_Remove_set (
User_extensions_Control *the_extension
)
{
- _Assert( _Objects_Allocator_is_owner() );
+ ISR_lock_Context lock_context;
+ _User_extensions_Acquire( &lock_context );
+ _Chain_Iterator_registry_update(
+ &_User_extensions_List.Iterators,
+ &the_extension->Node
+ );
_Chain_Extract_unprotected( &the_extension->Node );
+ _User_extensions_Release( &lock_context );
/*
* If a switch handler is present, remove it.