Method: Kernel#callcc
- Defined in:
- cont.c
#callcc {|cont| ... } ⇒ Object
Generates a Continuation object, which it passes to the associated block. You need to require 'continuation'
before using this method. Performing a cont.call
will cause the #callcc to return (as will falling through the end of the block). The value returned by the #callcc is the value of the block, or the value passed to cont.call
. See class Continuation for more details. Also see Kernel#throw for an alternative mechanism for unwinding a call stack.
1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 |
# File 'cont.c', line 1754
static VALUE
rb_callcc(VALUE self)
{
volatile int called;
volatile VALUE val = cont_capture(&called);
if (called) {
return val;
}
else {
return rb_yield(val);
}
}
|