Sha256: f10af1be44b328b3a1d9e98e292bf54f3b8c47c355cfb4454bd611ffc8ec2d44

Contents?: true

Size: 1.96 KB

Versions: 12

Compression:

Stored size: 1.96 KB

Contents

o:$YARD::CodeObjects::MethodObject:
@name:define_finalizer:@docstringIC:YARD::Docstring"SAdds <i>aProc</i> as a finalizer, to be called after <i>obj</i>
was destroyed.
:@objectu:YARD::StubProxy!ObjectSpace.define_finalizer:
@summary0:	@all"Adds <i>aProc</i> as a finalizer, to be called after <i>obj</i>
was destroyed.



@overload define_finalizer(obj, aProc=proc()):@ref_tags[:
@tags[o:YARD::Tags::OverloadTag
;
u;!ObjectSpace.define_finalizer;;;IC;	"
;
u;!ObjectSpace.define_finalizer;0;
";[;[:@types0:@parameters[[:obj0[:
aProc"proc():
@text0:@signature"(define_finalizer(obj, aProc=proc()):@tag_name"
overload:@current_file_has_commentsF:@scope:
class;[:@docstring_extra0:@files[["	gc.c0:@namespaceu;ObjectSpace:
@path"!ObjectSpace.define_finalizer;[:@visibility:public:@source"ƒ/*
 *  call-seq:
 *     ObjectSpace.define_finalizer(obj, aProc=proc())
 *
 *  Adds <i>aProc</i> as a finalizer, to be called after <i>obj</i>
 *  was destroyed.
 *
 */

static VALUE
define_final(argc, argv, os)
    int argc;
    VALUE *argv;
    VALUE os;
{
    VALUE obj, block, table;

    rb_scan_args(argc, argv, "11", &obj, &block);
    if (argc == 1) {
    block = rb_block_proc();
    }
    else if (!rb_respond_to(block, rb_intern("call"))) {
    rb_raise(rb_eArgError, "wrong type argument %s (should be callable)",
         rb_obj_classname(block));
    }
    need_call_final = 1;
    if (!FL_ABLE(obj)) {
    rb_raise(rb_eArgError, "cannot define finalizer for %s",
         rb_obj_classname(obj));
    }
    RBASIC(obj)->flags |= FL_FINALIZE;

    block = rb_ary_new3(2, INT2FIX(ruby_safe_level), block);
    OBJ_FREEZE(block);

    if (!finalizer_table) {
    finalizer_table = st_init_numtable();
    }
    if (st_lookup(finalizer_table, obj, &table)) {
    rb_ary_push(table, block);
    }
    else {
    table = rb_ary_new3(1, block);
    RBASIC(table)->klass = 0;
    st_add_direct(finalizer_table, obj, table);
    }
    return block;
}:@source_type:c

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
pry-doc-0.4.4 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.4.3 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.4.2 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.4.1 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.4.0 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.3.0 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.2.4pre1 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.2.3pre1 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.2.1 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.2.0 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-doc-0.1.5pre1 lib/pry-doc/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat
pry-0.6.9pre1-i386-mingw32 lib/pry/core_docs_18/objects/ObjectSpace/define_finalizer_c.dat