ager@google.com
0e53275c79
Save and restore errno in signal handler.
...
Having a signal handler that clobbers errno can lead to spurious
behavior in other code that relies on errno. One example of this
is pthread_cond_wait.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//9193014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3499 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-23 15:07:09 +00:00
sgjesse@google.com
0122a33a76
Handle EINTR on all IO operations
...
There have been spurious FileIOExceptions seen on some Mac OS machines.
R=ager@google.com ,whesse@google.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//9139011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3185 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-11 15:12:27 +00:00
ajohnsen@google.com
c2b45bf04e
Add optional workingDirectory argument to Process.start.
...
Review URL: http://codereview.chromium.org//9108008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2987 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-05 09:54:54 +00:00
ager@google.com
47a7c9bcdb
Undo change that converted exit code 255 to -1.
...
It seems that most systems do not perform that conversion and it
could therefore be confusing.
Simplify the crash handling in the test scripts accordingly.
R=sgjesse@google.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//8989011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2620 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-20 10:06:35 +00:00
ager@google.com
946b015d0a
Fix memory leak in MacOS process handling.
...
Report error for failing writes. We used to enter a poll loop
because we kept on attempting to write.
Currently the error handling in the socket interface is inconsistent.
We have a big TODO item on general error handling including the socket
interface.
R=sgjesse@google.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//8659032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1887 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-29 10:10:07 +00:00
sgjesse@google.com
d7c8c1f1e4
Fix a number of issues with the process handling
...
1. Ignore the signal SIGPIPE on Linux and Mac OS
When reading from or writing to a closed pipe the signal SIGPIPE
is raised. The default handling of this is to terminate the
program. When signal SIGPIPE is ignored the read and write
returns EPIPE.
2. Wrong return type for stdio getter
3. When there is an error on a socket mark it as closed
4. Mark the pipe used for process exit status as a one way pipe
5. Add tests to test stdin, stdout and stderr in Dart scripts
R=ager@google.com
BUG=dart:536, dart:454
TEST=
Review URL: http://codereview.chromium.org//8662006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1793 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-23 14:49:18 +00:00
iposva@google.com
0c9902ca67
- Avoid allocating variable length arrays on the stack.
...
- Fix C++ warning about copying vtables.
- Use correct delete for PortMap entries.
Review URL: http://codereview.chromium.org//8555024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1538 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-15 17:47:21 +00:00
ager@google.com
f789c40d85
Correct the sign of exit codes for the process library.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org//8506013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1356 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-09 15:37:40 +00:00
ager@google.com
c7125db824
Simplify SIGCLD handler on linux and mac.
...
Handle all dead processes on sigal. This avoids hanging because we
missed some process terminations when they happened simultaneously.
R=sgjesse@google.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//8506010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1354 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-09 13:35:14 +00:00
ager@google.com
ddc5446aa7
Avoid creating zombie processes by waiting for the terminated process.
...
R=sgjesse@google.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//8506009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1347 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-09 12:05:44 +00:00
ager@google.com
86284155b9
Improve error handling in the process library.
...
Verify that the arguments have the types expected by the
implementation. Require a List instance containing builtin
Strings as the arguments. Require a builtin String path.
R=sgjesse@google.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//8383037
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@690 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-25 12:16:04 +00:00
sgjesse@google.com
b7485553a2
Fix deadlock in process exit handling
...
As glibc allocation routines are not re-entrant avoid calling delete in signal handler.
Instead the message send from the signal handler on process exit contains both the pid and the exit code. The internal _Process object always installs a data handler for the exit message and calls back into C++ to cleanup the resources allocated for running a process.
Changed the ActiveProcess (renamed to ProcessInfo) to form an explicitly linked list.
R=ager@google.com
BUG=dart:1
TEST=
Review URL: http://codereview.chromium.org//8227010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@325 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-11 11:26:12 +00:00
dgrove@google.com
4c0f559d23
Initial checkin.
...
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-05 05:20:07 +00:00