Connections

A connection is a GUI based system that allows you to manage any external program being run by Jungle Ide, like the Monkey compiler, when youre compiling source code.

This system lets you monitor the external programs status (process) and abort its execution at any time, in a clean and resource leak free way.

All in all, to summarize how it works, you should understand connections this way:

The connections system displays any running sub-process (ie. a compilation & run process) in a separated TAB in the console panel. This simple addition involves some very nice features (both in low level efficiency and in usability):

This system lets you monitor when a process execution has ended.
This system prevents the Jungle Ide console to get mixed contents as you can have in other Ides (compilation results contents with Jungle Ide usage information, etc.)

The most important thing: The connections system allows process interruption at any time granting that any child process is also detected and collected and all resources from any process and sub-process in the same branch are properly released.

In other words, the Connections engine integrates a tree-based process identification system that allows any running application, as instance a XNA or GLFW application, to be closed properly. When you do this, Jungle will be closing also any child process that the application may have started.

As instance, with this system, when you cancel execution of a XNA Monkey game, youll see how the connection closes:
The Trans tool
The cmd shell tool used by trans to launch the running application
The MonkeyGame XNA application being run
The XNA game proxy engine being automatically started by the game.

This provides a clean way to manage this resources which is much more effective and clean than just deleting the MonkeyGame child process from program manager.

Additionally, if the application being run does itself start secondary processes, they will be automatically detected and destroyed whenever the connection is killed.

That’s how a connection looks like in the IDE:

The round icon indicates if the connection is active or not. A connection is active when it is running a process. In the sample image, the connection is not active.

In the following example, we can see an active connection:

You can see the green circle next the the connection name, in the tab header. Also, you can see there’s an Stop button that can be use to abort execution. Also, the plus button can increase the execution priority of the connection, while the gear icon leaves it on standard mode, and the minus button allows the user to decrease the execution priority to the process associated to the solution.