add support for pausing and resuming streams and PTYs

pull/134/merge
Fabian Jakobs 2015-09-02 10:13:42 +00:00
rodzic 930bc1231a
commit 7ac14a89a2
2 zmienionych plików z 33 dodań i 0 usunięć

8
node_modules/vfs-socket/consumer.js wygenerowano vendored
Wyświetl plik

@ -39,6 +39,8 @@ function Consumer() {
// Endpoint for readable streams at options.stream
destroy: destroy,
resume: resume,
pause: pause,
// Endpoint for processes in meta.process
onExit: onExit,
@ -190,6 +192,12 @@ function Consumer() {
stream.destroy = function () {
remote.destroy(id);
};
stream.pause = function () {
remote.pause(id);
};
stream.resume = function () {
remote.resume(id);
};
}
return stream;

25
node_modules/vfs-socket/worker.js wygenerowano vendored
Wyświetl plik

@ -17,6 +17,8 @@ function Worker(vfs) {
// Endpoint for readable stream at meta.stream (and meta.process.{stdout,stderr})
destroy: destroy,
resume: resume,
pause: pause,
// Endpoints for readable streams at options.stream
onData: onData,
@ -155,6 +157,12 @@ function Worker(vfs) {
stream.destroy = function () {
remote.destroy(id);
};
stream.resume = function () {
remote.resume(id);
};
stream.pause = function () {
remote.pause(id);
};
}
return stream;
@ -240,6 +248,13 @@ function Worker(vfs) {
return pty && pty.token;
var pid = storeProcess(pty, true); delete pty.token;
if (!pty.resume && pty.socket && pty.socket.resume)
pty.resume = pty.socket.resume.bind(pty.socket);
if (!pty.pause && pty.socket && pty.socket.pause)
pty.pause = pty.socket.pause.bind(pty.socket);
var token = storeStream(pty); delete pty.token;
token.pid = pid;
pty.token = token;
@ -302,6 +317,16 @@ function Worker(vfs) {
if (chunk) stream.end(chunk);
else stream.end();
}
function resume(id) {
var stream = streams[id];
if (!stream) return;
return stream.resume && stream.resume();
}
function pause(id) {
var stream = streams[id];
if (!stream) return;
return stream.pause && stream.pause();
}
function kill(pid, code) {
var process = processes[pid];