summaryrefslogtreecommitdiff
path: root/ruby_2_2/ext/-test-/tracepoint
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_2_2/ext/-test-/tracepoint')
-rw-r--r--ruby_2_2/ext/-test-/tracepoint/depend22
-rw-r--r--ruby_2_2/ext/-test-/tracepoint/extconf.rb1
-rw-r--r--ruby_2_2/ext/-test-/tracepoint/gc_hook.c80
-rw-r--r--ruby_2_2/ext/-test-/tracepoint/tracepoint.c96
4 files changed, 0 insertions, 199 deletions
diff --git a/ruby_2_2/ext/-test-/tracepoint/depend b/ruby_2_2/ext/-test-/tracepoint/depend
deleted file mode 100644
index 741bad0386..0000000000
--- a/ruby_2_2/ext/-test-/tracepoint/depend
+++ /dev/null
@@ -1,22 +0,0 @@
-# AUTOGENERATED DEPENDENCIES START
-gc_hook.o: $(RUBY_EXTCONF_H)
-gc_hook.o: $(arch_hdrdir)/ruby/config.h
-gc_hook.o: $(hdrdir)/ruby/debug.h
-gc_hook.o: $(hdrdir)/ruby/defines.h
-gc_hook.o: $(hdrdir)/ruby/intern.h
-gc_hook.o: $(hdrdir)/ruby/missing.h
-gc_hook.o: $(hdrdir)/ruby/ruby.h
-gc_hook.o: $(hdrdir)/ruby/st.h
-gc_hook.o: $(hdrdir)/ruby/subst.h
-gc_hook.o: gc_hook.c
-tracepoint.o: $(RUBY_EXTCONF_H)
-tracepoint.o: $(arch_hdrdir)/ruby/config.h
-tracepoint.o: $(hdrdir)/ruby/debug.h
-tracepoint.o: $(hdrdir)/ruby/defines.h
-tracepoint.o: $(hdrdir)/ruby/intern.h
-tracepoint.o: $(hdrdir)/ruby/missing.h
-tracepoint.o: $(hdrdir)/ruby/ruby.h
-tracepoint.o: $(hdrdir)/ruby/st.h
-tracepoint.o: $(hdrdir)/ruby/subst.h
-tracepoint.o: tracepoint.c
-# AUTOGENERATED DEPENDENCIES END
diff --git a/ruby_2_2/ext/-test-/tracepoint/extconf.rb b/ruby_2_2/ext/-test-/tracepoint/extconf.rb
deleted file mode 100644
index c0c2399eb4..0000000000
--- a/ruby_2_2/ext/-test-/tracepoint/extconf.rb
+++ /dev/null
@@ -1 +0,0 @@
-create_makefile("-test-/tracepoint")
diff --git a/ruby_2_2/ext/-test-/tracepoint/gc_hook.c b/ruby_2_2/ext/-test-/tracepoint/gc_hook.c
deleted file mode 100644
index 6d8485ecb1..0000000000
--- a/ruby_2_2/ext/-test-/tracepoint/gc_hook.c
+++ /dev/null
@@ -1,80 +0,0 @@
-#include "ruby/ruby.h"
-#include "ruby/debug.h"
-
-static int invoking; /* TODO: should not be global variable */
-
-static VALUE
-invoke_proc_ensure(void *dmy)
-{
- invoking = 0;
- return Qnil;
-}
-
-static VALUE
-invoke_proc_begin(VALUE proc)
-{
- return rb_proc_call(proc, rb_ary_new());
-}
-
-static void
-invoke_proc(void *data)
-{
- VALUE proc = (VALUE)data;
- invoking += 1;
- rb_ensure(invoke_proc_begin, proc, invoke_proc_ensure, 0);
-}
-
-static void
-gc_start_end_i(VALUE tpval, void *data)
-{
- if (0) {
- rb_trace_arg_t *tparg = rb_tracearg_from_tracepoint(tpval);
- fprintf(stderr, "trace: %s\n", rb_tracearg_event_flag(tparg) == RUBY_INTERNAL_EVENT_GC_START ? "gc_start" : "gc_end");
- }
-
- if (invoking == 0) {
- rb_postponed_job_register(0, invoke_proc, data);
- }
-}
-
-static VALUE
-set_gc_hook(VALUE module, VALUE proc, rb_event_flag_t event, const char *tp_str, const char *proc_str)
-{
- VALUE tpval;
- ID tp_key = rb_intern(tp_str);
- ID proc_key = rb_intern(proc_str);
-
- /* disable previous keys */
- if (rb_ivar_defined(module, tp_key) != 0 &&
- RTEST(tpval = rb_ivar_get(module, tp_key))) {
- rb_tracepoint_disable(tpval);
- rb_ivar_set(module, tp_key, Qnil);
- rb_ivar_set(module, proc_key, Qnil);
- }
-
- if (RTEST(proc)) {
- if (!rb_obj_is_proc(proc)) {
- rb_raise(rb_eTypeError, "trace_func needs to be Proc");
- }
-
- tpval = rb_tracepoint_new(0, event, gc_start_end_i, (void *)proc);
- rb_ivar_set(module, tp_key, tpval);
- rb_ivar_set(module, proc_key, proc); /* GC guard */
- rb_tracepoint_enable(tpval);
- }
-
- return proc;
-}
-
-static VALUE
-set_after_gc_start(VALUE module, VALUE proc)
-{
- return set_gc_hook(module, proc, RUBY_INTERNAL_EVENT_GC_START,
- "__set_after_gc_start_tpval__", "__set_after_gc_start_proc__");
-}
-
-void
-Init_gc_hook(VALUE module)
-{
- rb_define_module_function(module, "after_gc_start_hook=", set_after_gc_start, 1);
-}
diff --git a/ruby_2_2/ext/-test-/tracepoint/tracepoint.c b/ruby_2_2/ext/-test-/tracepoint/tracepoint.c
deleted file mode 100644
index aa8c212f99..0000000000
--- a/ruby_2_2/ext/-test-/tracepoint/tracepoint.c
+++ /dev/null
@@ -1,96 +0,0 @@
-#include "ruby/ruby.h"
-#include "ruby/debug.h"
-
-struct tracepoint_track {
- size_t newobj_count;
- size_t free_count;
- size_t gc_start_count;
- size_t gc_end_mark_count;
- size_t gc_end_sweep_count;
- size_t objects_count;
- VALUE objects[10];
-};
-
-#define objects_max (sizeof(((struct tracepoint_track *)NULL)->objects)/sizeof(VALUE))
-
-static void
-tracepoint_track_objspace_events_i(VALUE tpval, void *data)
-{
- rb_trace_arg_t *tparg = rb_tracearg_from_tracepoint(tpval);
- struct tracepoint_track *track = data;
-
- switch (rb_tracearg_event_flag(tparg)) {
- case RUBY_INTERNAL_EVENT_NEWOBJ:
- {
- VALUE obj = rb_tracearg_object(tparg);
- if (track->objects_count < objects_max)
- track->objects[track->objects_count++] = obj;
- track->newobj_count++;
- break;
- }
- case RUBY_INTERNAL_EVENT_FREEOBJ:
- {
- track->free_count++;
- break;
- }
- case RUBY_INTERNAL_EVENT_GC_START:
- {
- track->gc_start_count++;
- break;
- }
- case RUBY_INTERNAL_EVENT_GC_END_MARK:
- {
- track->gc_end_mark_count++;
- break;
- }
- case RUBY_INTERNAL_EVENT_GC_END_SWEEP:
- {
- track->gc_end_sweep_count++;
- break;
- }
- default:
- rb_raise(rb_eRuntimeError, "unknown event");
- }
-}
-
-static VALUE
-tracepoint_track_objspace_events(VALUE self)
-{
- struct tracepoint_track track = {0, 0, 0, 0, 0,};
- VALUE tpval = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_NEWOBJ | RUBY_INTERNAL_EVENT_FREEOBJ |
- RUBY_INTERNAL_EVENT_GC_START | RUBY_INTERNAL_EVENT_GC_END_MARK |
- RUBY_INTERNAL_EVENT_GC_END_SWEEP,
- tracepoint_track_objspace_events_i, &track);
- VALUE result = rb_ary_new();
-
- rb_tracepoint_enable(tpval);
- rb_ensure(rb_yield, Qundef, rb_tracepoint_disable, tpval);
-
- rb_ary_push(result, SIZET2NUM(track.newobj_count));
- rb_ary_push(result, SIZET2NUM(track.free_count));
- rb_ary_push(result, SIZET2NUM(track.gc_start_count));
- rb_ary_push(result, SIZET2NUM(track.gc_end_mark_count));
- rb_ary_push(result, SIZET2NUM(track.gc_end_sweep_count));
- rb_ary_cat(result, track.objects, track.objects_count);
-
- return result;
-}
-
-static VALUE
-tracepoint_specify_normal_and_internal_events(VALUE self)
-{
- VALUE tpval = rb_tracepoint_new(0, RUBY_INTERNAL_EVENT_NEWOBJ | RUBY_EVENT_CALL, 0, 0);
- rb_tracepoint_enable(tpval);
- return Qnil; /* should not be reached */
-}
-
-void Init_gc_hook(VALUE);
-
-void
-Init_tracepoint(void)
-{
- VALUE mBug = rb_define_module("Bug");
- Init_gc_hook(mBug);
- rb_define_module_function(mBug, "tracepoint_track_objspace_events", tracepoint_track_objspace_events, 0);
- rb_define_module_function(mBug, "tracepoint_specify_normal_and_internal_events", tracepoint_specify_normal_and_internal_events, 0);
-}