Commit Graph

276 Commits

Author SHA1 Message Date
Micheil Smith
19fd5301bf Expose original argv as process.execArgv for cluster and child_process.fork() 2012-03-15 13:47:43 -07:00
Shea Levy
024451c65c fork: don't clear environment by default
- Set options.env to process.env instead of {} by default.
- Shallow clone the passed options.env in case the user passed process.env directly.
2012-03-07 17:25:59 +01:00
Joshua Holbrook
56cfcea4b4 child_process: remove dummy "setsid" option setting 2012-02-29 02:10:56 +01:00
Joshua Holbrook
4065b241e8 child_process: remove dummy "setsid" option setting 2012-02-29 02:06:20 +01:00
Maciej Małecki
c6c6f98f1c util: add util._extend for extending objects
There were 2 duplicates with such functionality in `cluster` and
`child_process` modules which were replaced by this function.
2012-02-20 21:58:00 +01:00
isaacs
0cdf85e28d Lint all the JavaScripts. 2012-02-18 15:34:57 -08:00
Andreas Madsen
9da830e895 child_process: stop .disconnect() call if channel is diconnected 2012-02-08 11:42:38 -08:00
Ben Noordhuis
74a8215a86 Revert support for isolates.
It was decided that the performance benefits that isolates offer (faster spin-up
times for worker processes, faster inter-worker communication, possibly a lower
memory footprint) are not actual bottlenecks for most people and do not outweigh
the potential stability issues and intrusive changes to the code base that
first-class support for isolates requires.

Hence, this commit backs out all isolates-related changes.

Good bye, isolates. We hardly knew ye.
2012-02-06 15:44:42 +01:00
Igor Zinkovsky
db3c4efd1d support for sharing streams accross isolates 2012-01-31 17:45:50 -08:00
Andreas Madsen
33b7fc250f child_process: do not disconnect on exit emit
When using isolate the .fork would break because it had
no .disconnect method. This remove the exit handler there
would call .disconnect since it was not required.
It also change .disconnect to throw if the channel is closed,
this was not possible before because .disconnect would be called
twice.
2012-01-31 17:22:21 -08:00
Andreas Madsen
836344c90e Add disconnect method to forked child processes
This disconnect method allows the child to exit gracefully.
This also adds a disconnect event and connect property.
2012-01-30 16:35:27 +01:00
Fedor Indutny
667aae596c Merge branch 'v0.6'
Conflicts:
	ChangeLog
	doc/template.html
	lib/cluster.js
	lib/http.js
	lib/tls.js
	src/node.h
	src/node_version.h
	test/simple/test-cluster-kill-workers.js
2012-01-24 00:30:28 +06:00
Andreas Madsen
70884875c9 Allow calling fork() without args or options
Closes GH-2424
2012-01-17 19:07:57 +01:00
Andreas Madsen
ca6ededbd1 child_process: add errno property to exceptions
In case of a write failure when using fork() an error would be thrown. The
thrown exception was missing the `errno` property.
2012-01-17 18:37:02 +01:00
Maciej Małecki
4d49469d0d child_process: fix typo in internal message event name 2012-01-10 23:16:07 +01:00
Fedor Indutny
6b2091b58a debug threads 2012-01-10 02:28:49 +01:00
Ben Noordhuis
42281124d4 child_process: add isolates support
Passing an options object with {thread:true} to .fork() or .spawn() will run the
target script in a thread instead of a separate process.
2012-01-06 00:47:14 +01:00
Andreas Madsen
5f08c3cfa1 cluster improvements: Worker class and isolate internal messages
Fixes #2388
2012-01-04 18:30:19 -08:00
Ryan Dahl
4428b70cba Add isolate version of test-child-process-fork 2011-12-29 01:56:11 +01:00
Ryan Dahl
f7f8af8420 Merge remote branch 'origin/v0.6'
Conflicts:
	Makefile
	lib/_debugger.js
2011-12-21 12:17:23 -08:00
Ben Noordhuis
6df7bdd954 child_process: make .send() throw if message is undefined
JSON.stringify(undefined) returns "undefined" but JSON.parse() doesn't know how
to parse that.
2011-12-18 01:29:07 +01:00
Andreas Madsen
b084322f52 Add silent option to child_process.fork
Fixes #2354.
2011-12-17 12:53:44 -08:00
Andreas Madsen
a599aeb2a8 jslint
Fixes #2306
2011-12-16 12:57:03 -08:00
Ryan Dahl
60e26668b3 Remove superfluous 'new' 2011-12-04 00:09:10 -08:00
Thomas Shinnick
eba1f7b1a4 child_process: fix order of args to errnoException() 2011-11-28 20:45:01 +01:00
Bert Belder
189dd8f803 Fix line endings and trailing whitespace 2011-11-04 16:24:34 +01:00
Maciej Małecki
6bd0bcd5af child_process: in a new ChildProcess set killed to false
This behavior is consistent with what v0.4 does.
2011-11-02 18:17:51 +01:00
Igor Zinkovsky
3060266ff1 windows: enable pending accepts knob 2011-11-01 14:14:52 -07:00
koichik
8a729270c1 fix for --harmony_block_scoping
Fixes #1969.
2011-10-31 00:49:20 +09:00
koichik
a09b747f30 child_process.fork: don't modify args
Fixes #1888.
2011-10-15 00:15:38 +09:00
Ryan Dahl
651b8a06d6 Fix test/pummel/test-exec.js 2011-10-12 16:12:24 -07:00
Daniel Ennis
59be975322 Improve IPC performance.
Reading of JSON data off the buffer, 10-15% performance increase.

Fixes #1864.
2011-10-12 15:06:51 -07:00
Ryan Dahl
96e423a665 Remove child_process_legacy 2011-10-11 13:16:33 -07:00
Ryan Dahl
7772f21b60 initial pass at lib/child_process_uv.js 2011-07-31 15:58:10 -07:00
Ryan Dahl
02699a3a8e net_uv: child process use net_legacy; recognize NODE_USE_UV=1 env var 2011-06-20 15:51:03 +02:00
Ryan Dahl
0271b785a1 fork: Use utf8 for channel encoding 2011-05-17 10:51:30 -07:00
Ryan Dahl
337c48db5f Rename spawnNode to fork 2011-05-11 13:32:40 -07:00
Ryan Dahl
9e26dab150 child_process.spawnNode
For making easy worker processes.
2011-05-11 02:24:48 -07:00
Ryan Dahl
55048cdf79 Update copyright headers 2011-03-14 17:37:05 -07:00
Nathan Rajlich
a9a252fda9 Read up the prototype of the 'env' object.
Closes GH-713.
2011-02-24 16:36:23 -08:00
Ryan Dahl
cb06abe1e5 Helpful error when child_process.exec hit maxBuffer 2011-01-27 17:45:17 -08:00
Ryan Dahl
9e976abad9 lint 2011-01-24 10:55:30 -08:00
Bert Belder
6ad629895d Make child_process.kill always work on windows 2011-01-18 04:58:32 +01:00
isaacs
6f5d95de6d child_process: Add gid/uid flags to spawn config
This is mostly working, but not completely ideal for two reasons.

1. Rather than emitting an error on the ChildProcess object when the
setgid/setuid fails, it is simply printing the error to stderr and
exiting.  The same happens with the cwd, so that's not completely
terrible.

2. I don't have a good test for this.  It fails with an EPERM if you try
to change the uid or gid as a non-root user.
2011-01-11 10:02:58 -08:00
Ryan Dahl
63bd237892 typo setuid -> setsid 2011-01-10 17:15:17 -08:00
Ryan Dahl
202dd8387f Add setsid option to child_process 2011-01-10 16:24:49 -08:00
Ryan Dahl
11ea8da9c3 lint child_process.js 2010-12-01 16:56:03 -08:00
Travis Swicegood
22cf5a24db Simplify execution from "big if statement"
This code is functionally equivalent, but in a simpler form.  Now new
parameters to `execFile` do not require `exec` to be refactored.
2010-11-29 17:46:46 -08:00
Travis Swicegood
e514f575f3 Remove cruft that dealt with env parameter
Originally added in commit 078a48a9, this code dealt with an optional
env parameter that was passed to `exec`.  The parameter was removed, but
this code was left.  As it serves no purpose, removing it.
2010-11-29 17:43:27 -08:00
Travis Swicegood
86727b15f3 fix a typo in comment
fixes issue 464
2010-11-29 17:07:30 -08:00
Ryan Dahl
9bf2975f78 Make sure Error object on exec() gets killed member
Also default to SIGTERM for destruction when exceeding timeout or buffer on
exec()
2010-10-23 11:37:40 -07:00
Ryan Dahl
6570cd99e5 Fix execFile timeouts, improve tests
It seems that a parent will not get a SIGCHLD if the child is killed by the
parent? It's unclear, so make 'exit' callback manually.
2010-10-20 19:20:52 -07:00
Ryan Dahl
5a98fa4809 ChildProcesses cannot be killed if pid is missing 2010-10-20 17:55:25 -07:00
Aaron Heckmann
bd8e4f656e Prevents child_process.exec timeouts from throwing when the child was previously killed. 2010-10-20 12:46:51 -07:00
Micheil Smith
e38eb0c5a4 Soft migration of sys -> util, Removal of deprecated utils module. 2010-10-11 15:21:36 -07:00
Ryan Dahl
f23eb282c0 Fix style 2010-10-09 12:48:22 -07:00
Joshaven Potter
3d4e4d8909 syntax fixes to pass jslint 2010-10-06 20:40:57 -07:00
Aaron Heckmann
7c5cc57ece quicker loops 2010-09-28 01:14:58 -07:00
Ryan Dahl
6eca948ca2 Move constants out of process object 2010-09-16 23:16:07 -07:00
Bert Belder
7d4e8a9a71 If no options are given to child_process.spawn, env should default to process.env
Regression.
2010-08-09 15:37:14 -07:00
Bert Belder
aaa1f451e6 Expose cwd option to child_process.exec() 2010-08-06 13:38:41 -07:00
Bert Belder
94914135df New api for child_process.spawn; ability to set cwd for spawn()ed process
Tests for child_process.spawn() use new API

Test for deprecated child_process.spawn() API
2010-08-06 13:37:30 -07:00
Ryan Dahl
7067a7155f Specify env differently in execFile
Callbacks should always be the last argument.
2010-07-19 20:08:35 -07:00
Сергей Крыжановский
078a48a97b added env to child_process.exec 2010-07-15 17:17:03 -07:00
Ryan Dahl
d700a6f74a Return child from execFile 2010-07-12 14:18:09 -07:00
Orlando Vazquez
92da636b97 Add a parameter to spawn() that sets the child's stdio file descriptors.
After the child is forked, these file descriptors will get dup2()'d to STDIN,
STDIO, and STDERR.

(API may be changed.)
2010-06-02 10:41:24 -07:00
Ryan Dahl
d38d96eb61 Don't emit 'exit' twice from child process 2010-05-08 23:28:26 -07:00
Ryan Dahl
264e540d00 Fix error reporting in child_process callbacks
Issue 120, test case by Nathan Ostgard
2010-05-08 22:13:34 -07:00
Felix Geisendörfer
f8a3cf980f Properly handle child process exit codes
The child process 'exit' was returning the status of the process, rather than
the exit code. This patch properly deconstructs the status into the exit code
and the term signal a process may have received.

See:
http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Watcher_Specific_Functions_and_Data_-5
and waitpid(2)
2010-04-28 13:54:17 -07:00
Ryan Dahl
4efe27bbab Add execFile() for Orlando
Undocumented for now, but basically like exec() with args.
2010-04-14 18:50:44 -07:00
Ryan Dahl
9cf2a02d8b Add timeout and maxBuffer options to child_process.exec 2010-04-14 11:59:24 -07:00
Tim Caswell
62d9852c3d Replace slow and broken for..in loops with faster for loops over the keys. 2010-04-12 10:34:35 -07:00
Tim Caswell
ff56d6364e Fix child_process to use end() instead of close() in the stdin stream. 2010-04-09 10:01:47 -07:00
Ryan Dahl
b8bb6e9007 Close child process stdin on SIGCHLD 2010-04-08 15:20:13 -07:00
Ryan Dahl
1332cafb7c s/Socket/Stream/g 2010-03-17 16:31:24 -07:00
Ryan Dahl
04c06b9149 child process now use net.Socket 2010-03-17 14:00:17 -07:00