-
Key: RT12-3
-
Legacy Issue Number: 9019
-
Status: open
-
Source: Remedy IT ( Johnny Willemsen)
-
Summary:
Dynamic threads in RTCORBA Threadpools. With RTCorba it is possible to create thread pools with dynamic threads. These threads may be additionally created by the ORB when needed. But the spec says about the destruction that it is an implementation issue, but it is really the application programmer that can make a decission about this instead of just the ORB. The only real possible option an ORB builder has is to keep the thread alive or destroy it after each invocation. We propose to extend the RTCORBA interface with an interface that is called back by the ORB so that it is to the application programmer to decide what should be done with the thread. Below is a possible proposal: This is the current implementation and the CORBA spec says it is up to the implementor, but it is now up to the ORB builder, not to the application programmer who is the correct person to decide what the do with a dynamic thread. To be able to let the application programmer decide this we need a special callback interface. A proposal would be to add the following: module RTCORBA { local interface DynamicThreadManager
{ bool check_dynamic_thread (in ThreadPoolId threadpool, in unsigned long current_threads); bool check_dynamic_thread_in_lane (in ThreadPoolId threadpool, in ThreadPoolLane lane, in unsigned long current_threads); }; local interface RTORB
{ ... set_dynamic_thread_manager (in DynamicThreadManager manager); ... }; }; At the moment the ORB decided that a dynamic thread is not needed anymore, it will callback to the application programmer. It is now up to the application programmer what to do, when returning true it will keep the thread alive, if false, it will end the thread.
-
Reported: RT 1.1 — Tue, 27 Sep 2005 04:00 GMT
-
Updated: Fri, 6 Mar 2015 20:51 GMT