summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/shared/clock_driver_simidle.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/shared/clock_driver_simidle.c')
-rw-r--r--c/src/lib/libbsp/shared/clock_driver_simidle.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/shared/clock_driver_simidle.c b/c/src/lib/libbsp/shared/clock_driver_simidle.c
index 6d174bff65..39a82c08ff 100644
--- a/c/src/lib/libbsp/shared/clock_driver_simidle.c
+++ b/c/src/lib/libbsp/shared/clock_driver_simidle.c
@@ -7,7 +7,9 @@
* $Id$
*/
+#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__
#include <rtems.h>
+#include <rtems/score/thread.h>
#define CLOCK_VECTOR 0
@@ -40,8 +42,13 @@ Thread clock_driver_sim_idle_body(
)
{
for( ; ; ) {
- if ( clock_driver_enabled )
- rtems_clock_tick();
+ if ( clock_driver_enabled ) {
+ _Thread_Disable_dispatch();
+ _ISR_Nest_level++;
+ rtems_clock_tick();
+ _ISR_Nest_level--;
+ _Thread_Enable_dispatch();
+ }
}
return 0; /* to avoid warning */
}