Skip to content

Provide a proper node start() and stop() implementation #35

@aionick

Description

@aionick

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementProposal to improve an existing feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions