diff options
author | Andreas Heinig <andreas.heinig@cs.tu-dortmund.de> | 2012-08-06 13:46:27 -0400 |
---|---|---|
committer | Gedare Bloom <gedare@rtems.org> | 2012-08-06 13:46:27 -0400 |
commit | 7a9288fe3524236c18ad64b73ce5fa0c6da484b0 (patch) | |
tree | a4d45344341f44c8e4529fa806114ac0df8af8ee | |
parent | Remove generated files. (diff) | |
download | rtems-7a9288fe3524236c18ad64b73ce5fa0c6da484b0.tar.bz2 |
PR2069: [CBS Scheduler] Memory leak and enqueue problem
Due to the fact that CBS extends the EDF scheduler, most parts of EDF are
reused. One part is the allocation of the per-thread data. However, the CBS
per-thread structure defines a further element (while including the rest of
Scheduler_EDF_Per_thread)
-rw-r--r-- | cpukit/score/Makefile.am | 1 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/schedulercbs.h | 13 |
2 files changed, 13 insertions, 1 deletions
diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am index cb512e41ad..6f9f94f3bf 100644 --- a/cpukit/score/Makefile.am +++ b/cpukit/score/Makefile.am @@ -238,6 +238,7 @@ libscore_a_SOURCES += src/scheduleredf.c \ ## SCHEDULERCBS_C_FILES libscore_a_SOURCES += src/schedulercbs.c \ + src/schedulercbsallocate.c \ src/schedulercbsattachthread.c \ src/schedulercbscleanup.c \ src/schedulercbscreateserver.c \ diff --git a/cpukit/score/include/rtems/score/schedulercbs.h b/cpukit/score/include/rtems/score/schedulercbs.h index 7f49321bb2..6aa986d65c 100644 --- a/cpukit/score/include/rtems/score/schedulercbs.h +++ b/cpukit/score/include/rtems/score/schedulercbs.h @@ -49,7 +49,7 @@ extern "C" { _Scheduler_EDF_Yield, /* yield entry point */ \ _Scheduler_EDF_Block, /* block entry point */ \ _Scheduler_CBS_Unblock, /* unblock entry point */ \ - _Scheduler_EDF_Allocate, /* allocate entry point */ \ + _Scheduler_CBS_Allocate, /* allocate entry point */ \ _Scheduler_EDF_Free, /* free entry point */ \ _Scheduler_EDF_Update, /* update entry point */ \ _Scheduler_EDF_Enqueue, /* enqueue entry point */ \ @@ -315,6 +315,17 @@ void _Scheduler_CBS_Budget_callout( Thread_Control *the_thread ); +/** + * @brief Scheduler CBS Allocate + * + * This routine allocates CBS specific information of @a the_thread. + * + * @param[in] the_thread is the thread the scheduler is allocating + * management memory for. + */ +void *_Scheduler_CBS_Allocate( + Thread_Control *the_thread +); #ifdef __cplusplus } #endif |