Sha256: 6a0b72c1976066b00aa1fdf6bc918ddf5ac425ea53b08bd9b4412081e55d372c
Contents?: true
Size: 1.71 KB
Versions: 2
Compression:
Stored size: 1.71 KB
Contents
#include "polyphony.h" VALUE mPolyphony; ID ID_call; ID ID_caller; ID ID_clear; ID ID_each; ID ID_inspect; ID ID_new; ID ID_raise; ID ID_ivar_running; ID ID_ivar_thread; ID ID_runnable; ID ID_runnable_value; ID ID_size; ID ID_signal; ID ID_switch_fiber; ID ID_transfer; ID ID_R; ID ID_W; ID ID_RW; VALUE Polyphony_snooze(VALUE self) { VALUE ret; VALUE fiber = rb_fiber_current(); Fiber_make_runnable(fiber, Qnil); ret = Thread_switch_fiber(rb_thread_current()); TEST_RESUME_EXCEPTION(ret); RB_GC_GUARD(ret); return ret; } static VALUE Polyphony_suspend(VALUE self) { VALUE ret = Thread_switch_fiber(rb_thread_current()); TEST_RESUME_EXCEPTION(ret); RB_GC_GUARD(ret); return ret; } VALUE Polyphony_trace(VALUE self, VALUE enabled) { __tracing_enabled__ = RTEST(enabled) ? 1 : 0; return Qnil; } void Init_Polyphony() { mPolyphony = rb_define_module("Polyphony"); rb_define_singleton_method(mPolyphony, "trace", Polyphony_trace, 1); rb_define_global_function("snooze", Polyphony_snooze, 0); rb_define_global_function("suspend", Polyphony_suspend, 0); ID_call = rb_intern("call"); ID_caller = rb_intern("caller"); ID_clear = rb_intern("clear"); ID_each = rb_intern("each"); ID_inspect = rb_intern("inspect"); ID_ivar_running = rb_intern("@running"); ID_ivar_thread = rb_intern("@thread"); ID_new = rb_intern("new"); ID_raise = rb_intern("raise"); ID_runnable = rb_intern("runnable"); ID_runnable_value = rb_intern("runnable_value"); ID_signal = rb_intern("signal"); ID_size = rb_intern("size"); ID_switch_fiber = rb_intern("switch_fiber"); ID_transfer = rb_intern("transfer"); }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
polyphony-0.43.9 | ext/polyphony/polyphony.c |
polyphony-0.43.8 | ext/polyphony/polyphony.c |