Class: Fiber::Pool
Overview
:nodoc: experimental
Instance Method Summary collapse
- #initialize(*args) ⇒ Object constructor
Constructor Details
#initialize(*args) ⇒ Object
| 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 | # File 'cont.c', line 3328
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 = SIZET2NUM(th->vm->default_params.fiber_machine_stack_size);
    }
    if (NIL_P(count)) {
        count = INT2NUM(128);
    }
    if (NIL_P(vm_stack_size)) {
        vm_stack_size = SIZET2NUM(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;
} |