You have figured it out correct. Please elaborate on which object is getting instantiated twice?
-Suraj On Wed, Nov 20, 2013 at 11:05 AM, Yexi Jiang <[email protected]> wrote: > Hi, > > I am recently reading the code of the GroomServer and trying to figure out > the workflow. The following is my understanding, please correct me if I am > wrong. > > I already know the following steps: > 1. When initializing, the GroomServer will create an instructor, who will > buffer the incoming directive instance (a wrapper of action that can > launch, recover, or kill a task?). > 2. The instance will be handled by the DispatchTasksHandler. > 3. If the action is launched, then a couple of things will be done in the > order: DispatchTasksHandler.startNewTask -> GroomServer.localizeJob -> > GroomServer.launchTaskForJob -> TaskInProgress.launchTask . > I haven't figure out why a couple of distinct BSPJob instances are created > in these steps. > 4. A TaskRunner will be created to run the task. Further, a BSPChildRunner > instance will be created. When the BSPChildRunner instance (a thread) been > scheduled and executed, it will create a process to execute > the BSPPeerChild. > 5. BSPChildRunner will create a BSPPeerImpl and it will be executed by a > BSPTask (BSPTask.run -> BSPTask.runBSP). > 6. BSPPeerImpl will execute its setup, bsp, and cleanup method, which will > be implemented by the end user. > > Regards, > Yexi >
