rem: winston.debug('Adding handler ' + handler + ' to pin ' + pin.key); 
context: f.attachInterrupt = function(pin, handler, mode, callback) {    pin = getpin(pin);    if(!gpio[pin.gpio]) {        if(callback) callback({'pin':pin, 'attached':false, 'configured':false});        return(false);    }    if(gpio[pin.gpio].intProc) {        if(callback) callback({'pin':pin, 'attached':false, 'configured':true});        return(false);    }    winston.debug('Adding handler ' + handler + ' to pin ' + pin.key);    var gpioFile = '/sys/class/gpio/gpio' + pin.gpio + '/value';    fs.writeFileSync('/sys/class/gpio/gpio' + pin.gpio + '/edge', mode);    handler = (typeof handler === "string") ? myeval('(' + handler + ')') : handler;    var intHandler = function(m) {        if(typeof handler =='function') m.output = handler({'pin':pin, 'value':m.value});        else m.output = {handler:handler};        if(m.output.handler && (typeof callback == 'function')) callback(m);    };    var intProc;    if(child_process.fork) {        intProc = child_process.fork(__dirname + '/gpioint.js');    } else {        var fork = require('fork');        intProc = fork.fork(__dirname + '/gpioint.js');    }    intProc.on('message', intHandler);    intProc.on('exit', function(code, signal) {        if(callback) callback({            'pin':pin,            'code':code,            'signal':signal,            'died':true        });    });    intProc.send({'pin':pin, 'mode':mode, 'file':gpioFile});    gpio[pin.gpio].intProc = intProc;    process.on('SIGTERM', function() {        intProc.kill();        if(callback) callback({'pin':pin, 'died':true});    });    if(callback) callback({'pin':pin, 'attached':true});    return(true);};
meta: 5211	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5211/ce011b7f00c4b14c71589e8986ebe4bce3c6f151/index.js/clean/node_modules/bonescript/index.js