Example #1
0
Process.prototype.wait = function() {
    if (this._result === null) {
        var r = os.waitpid(this._pid);
        assert.equal(r.pid, this._pid);
        this._result = {exit_status: 0, term_signal: 0};
        if (os.WIFEXITED(r.status)) {
            this._result.exit_status = os.WEXITSTATUS(r.status);
        }
        if (os.WIFSIGNALED(r.status)) {
            this._result.term_signal = os.WTERMSIG(r.status);
        }
    }
    return this._result;
}
Example #2
0
var wfd = p[1];


var pid = os.fork();

if (pid == 0) {
    // child
    os.dup2(wfd, 1, false);
    os.execv(system.executable,
              [system.executable, path.join(__dirname, 'helper8.js')]);
    assert(false);
} else {
    // parent
    os.close(wfd);
    var data = '';
    for (;;) {
        var chunk = os.read(rfd, 16834);
        chunk = new TextDecoder().decode(chunk);
        if (chunk) {
            data += chunk;
        } else {
            break;
        }
    }
    assert.equal(data, 'HELLO SJS\n');
    var r = os.waitpid(pid);
    assert.equal(r.pid, pid);
    assert(os.WIFEXITED(r.status));
    assert.equal(os.WEXITSTATUS(r.status), 0);
}