if (currentFiberData.parent == null) throw runtime.newFiberError("can't yield from root fiber");
if (currentFiberData.prev == null) throw runtime.newFiberError("BUG: yield occured with null previous fiber. Report this at http://bugs.jruby.org");
if (currentFiberData.queue.isShutdown()) throw runtime.newFiberError("dead fiber yielded");
FiberData prevFiberData = currentFiberData.prev.data;
return exchangeWithFiber(context, currentFiberData, prevFiberData, value);
}