Class: Pool
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           ::Fiber | |
| Instance Chain: 
          self,
           ::Fiber | |
| Inherits: | Fiber | 
| Defined in: | cont.c | 
Class Attribute Summary
::Fiber - Inherited
| .blocking? | Returns  | 
Class Method Summary
- .new(*args) constructor
::Fiber - Inherited
| .current | Returns the current fiber. | 
| .current_scheduler | Returns the  | 
| .new | Creates new  | 
| .schedule | The method is expected to immediately run the provided block of code in a separate non-blocking fiber. | 
| .scheduler | Returns the  | 
| .set_scheduler | Sets the  | 
| .yield | Yields control back to the context that resumed the fiber, passing along any arguments that were passed to it. | 
Instance Attribute Summary
::Fiber - Inherited
| #alive? | Returns true if the fiber can still be resumed (or transferred to). | 
| #blocking? | Returns  | 
Instance Method Summary
::Fiber - Inherited
| #backtrace | Returns the current execution stack of the fiber. | 
| #backtrace_locations | Like  | 
| #inspect | Alias for Fiber#to_s. | 
| #raise | Raises an exception in the fiber at the point at which the last Fiber.yield was called. | 
| #resume | Resumes the fiber from the point at which the last Fiber.yield was called, or starts running it if it is the first call to  | 
| #to_s, | |
| #transfer | Transfer control to another fiber, resuming it from where it last stopped or starting it if it was not resumed before. | 
Constructor Details
.new(*args)
[ GitHub ]# File 'cont.c', line 2865
static VALUE
rb_fiber_pool_initialize(int argc, VALUE* argv, VALUE self)
{
    rb_thread_t *th = GET_THREAD();
    VALUE size = Qnil, count = Qnil, vm_stack_size = Qnil;
    struct fiber_pool * fiber_pool = NULL;
    // Maybe these should be keyword arguments.
    rb_scan_args(argc, argv, "03", &size, &count, &vm_stack_size);
    if (NIL_P(size)) {
        size = INT2NUM(th->vm->default_params.fiber_machine_stack_size);
    }
    if (NIL_P(count)) {
        count = INT2NUM(128);
    }
    if (NIL_P(vm_stack_size)) {
        vm_stack_size = INT2NUM(th->vm->default_params.fiber_vm_stack_size);
    }
    TypedData_Get_Struct(self, struct fiber_pool, &FiberPoolDataType, fiber_pool);
    fiber_pool_initialize(fiber_pool, NUM2SIZET(size), NUM2SIZET(count), NUM2SIZET(vm_stack_size));
    return self;
}