Unwrap process callback args.

Reviewed-by: asquare.
This commit is contained in:
Kinsley Wong 2013-11-11 11:29:04 -08:00
parent 4e6f832d4e
commit 67f7f0009c
2 changed files with 22 additions and 16 deletions

View File

@ -44,7 +44,8 @@ import net.java.libuv.cb.FileStatsCallback;
import net.java.libuv.cb.FileUTimeCallback;
import net.java.libuv.cb.FileWriteCallback;
import net.java.libuv.cb.IdleCallback;
import net.java.libuv.cb.ProcessCallback;
import net.java.libuv.cb.ProcessCloseCallback;
import net.java.libuv.cb.ProcessExitCallback;
import net.java.libuv.cb.SignalCallback;
import net.java.libuv.cb.StreamCloseCallback;
import net.java.libuv.cb.StreamConnectCallback;
@ -76,16 +77,6 @@ final class LoopCallbackHandler implements CallbackHandler {
}
}
@Override
public void handleProcessCallback(final ProcessCallback cb, final Object[] args) {
try {
cb.call(args);
eventLoop.processQueuedEvents();
} catch (Exception ex) {
eventLoop.loop().getExceptionHandler().handle(ex);
}
}
@Override
public void handleSignalCallback(final SignalCallback cb, final int signum) {
try {
@ -286,6 +277,24 @@ final class LoopCallbackHandler implements CallbackHandler {
}
}
@Override
public void handleProcessCloseCallback(ProcessCloseCallback cb) {
try {
cb.onClose();
} catch (Exception ex) {
eventLoop.loop().getExceptionHandler().handle(ex);
}
}
@Override
public void handleProcessExitCallback(ProcessExitCallback cb, int status, int signal, Exception error) {
try {
cb.onExit(status, signal, error);
} catch (Exception ex) {
eventLoop.loop().getExceptionHandler().handle(ex);
}
}
@Override
public void handleTimerCallback(final TimerCallback cb, final int status) {
try {

View File

@ -52,14 +52,11 @@
}
}, avatarContext, LibUVPermission.HANDLE);
this.process.exitCallback = function(args) {
var status = args[0];
var signal = args[1];
this.process.exitCallback = function(status, signal, nativeException) {
if (typeof signal == 'number' && signal > 0) {
signal = Constants.getConstantsString().get(signal);
}
if (status == -1) {
var nativeException = args[2];
if (nativeException) {
var errno = nativeException.errnoString();
process._errno = errno;
}