Sha256: 9e85421e3c5fee91803f549b63302b35e637155f5f433a01e9b347a5536098dc
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
#ifndef EVER_H #define EVER_H #include <execinfo.h> #include "ruby.h" #include "../libev/ev.h" // debugging #define OBJ_ID(obj) (NUM2LONG(rb_funcall(obj, rb_intern("object_id"), 0))) #define INSPECT(str, obj) { printf(str); VALUE s = rb_funcall(obj, rb_intern("inspect"), 0); printf(": %s\n", StringValueCStr(s)); } #define TRACE_CALLER() { VALUE c = rb_funcall(rb_mKernel, rb_intern("caller"), 0); INSPECT("caller: ", c); } #define TRACE_C_STACK() { \ void *entries[10]; \ size_t size = backtrace(entries, 10); \ char **strings = backtrace_symbols(entries, size); \ for (unsigned long i = 0; i < size; i++) printf("%s\n", strings[i]); \ free(strings); \ } // exceptions #define TEST_EXCEPTION(ret) (rb_obj_is_kind_of(ret, rb_eException) == Qtrue) #define RAISE_EXCEPTION(e) rb_funcall(e, ID_invoke, 0); #define RAISE_IF_EXCEPTION(ret) if (rb_obj_is_kind_of(ret, rb_eException) == Qtrue) { RAISE_EXCEPTION(ret); } #define RAISE_IF_NOT_NIL(ret) if (ret != Qnil) { RAISE_EXCEPTION(ret); } extern VALUE mEver; extern VALUE cLoop; extern VALUE cWatcher; typedef struct Loop_t { struct ev_loop *ev_loop; struct ev_async break_async; VALUE active_watchers; VALUE free_watchers; VALUE queued_events; int stop; int in_ev_loop; } Loop_t; void loop_emit(Loop_t *loop, VALUE key); void loop_release_watcher(Loop_t *loop, VALUE key); void Watcher_setup_io(VALUE watcher, Loop_t *loop, VALUE key, int fd, int events, int oneshot); void Watcher_setup_timer(VALUE watcher, Loop_t *loop, VALUE key, double timeout, double interval); void Watcher_stop(VALUE watcher); #endif /* EVER_H */
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ever-0.1 | ext/ever/ever.h |