kopia lustrzana https://github.com/c9/core
add support for pausing and resuming streams and PTYs
rodzic
930bc1231a
commit
7ac14a89a2
|
@ -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;
|
||||
|
|
|
@ -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];
|
||||
|
|
Ładowanie…
Reference in New Issue