-
Notifications
You must be signed in to change notification settings - Fork 4
Description
As per issues #1 and #2, both solutions took minor (albeit acceptable) shortcuts. But these should be done correctly.
The start() method currently launches the kernel and then listens for the rpc server to start via the LogListener, with a 20 second timeout in case the rpc start event had already occurred before we started listening. Instead, we want to be able to begin listening before the kernel is launched so that we are guaranteed to hear the event if it occurs. Also, we should be catching the 'rpc server not started' case and if that occurs handling this properly, since it may also be the case.
The stop() method currently tells the LogListener to stop listening and then shuts the external kernel Process down and waits for it to end. See #2 for why this was the case, there were some troubles (#29 is also related). Instead, we need to shut the external kernel Process down first and then turn the listener off once it sees the proper kernel shutdown line in the log - and if it does not see this, to handle the error.