if (!rb_block_given_p ())
rb_raise (rb_eStandardError, "block missing");
+ interval = rb_funcall2 (interval, rb_intern ("to_f"), 0, NULL);
+
+ if (rb_funcall2 (interval, rb_intern ("finite?"), 0, NULL) == Qfalse)
+ rb_raise (rb_eArgError, "Argument must not be infinite");
+
timer->callback = rb_block_proc ();
timer->deleted = false;
timer->real = ecore_timer_add (NUM2DBL (interval),