0ctave/node-sync — Issue #6: Error: yield() called with no fiber running
Author: xcrezd
Created: 2011-10-26 14:00:16+00:00
State: open

running node-sync on
nodejs v0.510
fibers v0.6.3
node-sync v0.1.8

example code:

require('fibers');
var ROOT_PATH = '/var/www/viaperson/chat';

var Sync = require(ROOT_PATH + '/server/node_modules/sync/lib/sync.js');

// Обычная асинхронная функция, вызывает callback с результатом через 1 сек
function someAsyncFunction(a, b, callback) {
setTimeout(function(){
callback(null, a + b);
}, 1000)
}
// Вызываем эту функцию синхронно, используя Function.prototype.sync(),
// работающий по тому же принципу, что и call()
// на этом моменте текуший поток "зависнет" на секунду, пока функция не вернет значение
var result = someAsyncFunction.sync(null, 2, 3);
console.log(result); // "5" через 1 секунду

crashing on:

node.js:202
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: yield() called with no fiber running
at Function.sync (/var/www/viaperson/chat/server/node_modules/sync/lib/sync.js:60:28)
at Object. (/var/www/viaperson/chat/server/test.js:15:32)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array. (module.js:470:10)
at EventEmitter._tickCallback (node.js:194:26)