Skip to content

Commit

Permalink
Update README and release notes for 0.7.3.
Browse files Browse the repository at this point in the history
  • Loading branch information
Gregory Brail committed Apr 12, 2014
1 parent 92320d5 commit 5bc6e50
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,15 +206,18 @@ Child processes are supported. Arbitrary commands may be executed, just like in
may be used to restrict whether particular commands may be executed, or if none should be executed at all.

When a Trireme script uses "fork" to spawn a new instance of itself, the script runs as a separate
thread inside the same JVM, rather than as a separate OS process as it works in regular Node.js.
thread inside the same JVM, rather than as a separate OS process as it works in regular Node.js. The parent
may use "send" on the child process to send messages to the child, and the child can use "process.send"
to talk back to the parent. This "IPC" mechanism works just like regular Node.js except that it all happens
inside the same JVM using a concurrent queue.

Support for "handles" is not currently implemented, however, so a parent may not send a TCP socket to the child
and expect the child to be able to handle it.

Some Node.js scripts rely on the ability to spawn a process called "./node" in order to fork itself. Trireme
looks for this and tries to use it to spawn a new thread but it does not work in all cases. It does seem to
be mostly the Node.js test suite itself that does this.

Child process functionality to "pipe" commands back and forth between parent and child has not yet been
implemented.

### Cluster

The "cluster" module is not yet supported. When it is, it will support running multiple scripts within a
Expand Down
17 changes: 17 additions & 0 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
# 0.7.3 11-Apr-2014:

* [Issue 51](https://github.com/apigee/trireme/pull/51) Java 6 only: mkdir should return ENOENT on non-existent
parent directories.
* Fix ipc in child_process module so that it works.

With this fix, a Node.js app running in Trireme can "fork" a sub-process
and communicate via the IPC pipe using "send" on the child process and on the "process" object, as described
in the docs for the "child_process" module.

Handles are not yet supported, which means that a parent cannot send a TCP socket to a child and expect it to
process it.

Note that unlike regular Node.js, child scripts spawned using "fork" run inside the same JVM as the parent,
but with a totally different script context and in a separate thread. "IPC" communication happens using a
concurrent queue. Communication between parent and child via this mechanism should be very fast.

# 0.7.2 28-Mar-2014:

* [Issue 47](https://github.com/apigee/trireme/issues/47) When the executeModule() function is used to run
Expand Down

0 comments on commit 5bc6e50

Please sign in to comment.