break around function definition [ci skip]
This commit is contained in:
parent
ab99a2ac44
commit
0e98a9c854
39
scheduler.c
39
scheduler.c
@ -37,7 +37,8 @@ Init_Scheduler(void)
|
|||||||
id_io_wait = rb_intern_const("io_wait");
|
id_io_wait = rb_intern_const("io_wait");
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_close(VALUE scheduler)
|
VALUE
|
||||||
|
rb_scheduler_close(VALUE scheduler)
|
||||||
{
|
{
|
||||||
if (rb_respond_to(scheduler, id_close)) {
|
if (rb_respond_to(scheduler, id_close)) {
|
||||||
return rb_funcall(scheduler, id_close, 0);
|
return rb_funcall(scheduler, id_close, 0);
|
||||||
@ -45,7 +46,8 @@ VALUE rb_scheduler_close(VALUE scheduler)
|
|||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
rb_scheduler_timeout(struct timeval *timeout) {
|
rb_scheduler_timeout(struct timeval *timeout)
|
||||||
|
{
|
||||||
if (timeout) {
|
if (timeout) {
|
||||||
return rb_float_new((double)timeout->tv_sec + (0.000001f * timeout->tv_usec));
|
return rb_float_new((double)timeout->tv_sec + (0.000001f * timeout->tv_usec));
|
||||||
}
|
}
|
||||||
@ -53,57 +55,68 @@ rb_scheduler_timeout(struct timeval *timeout) {
|
|||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_kernel_sleep(VALUE scheduler, VALUE timeout)
|
VALUE
|
||||||
|
rb_scheduler_kernel_sleep(VALUE scheduler, VALUE timeout)
|
||||||
{
|
{
|
||||||
return rb_funcall(scheduler, id_kernel_sleep, 1, timeout);
|
return rb_funcall(scheduler, id_kernel_sleep, 1, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_kernel_sleepv(VALUE scheduler, int argc, VALUE * argv)
|
VALUE
|
||||||
|
rb_scheduler_kernel_sleepv(VALUE scheduler, int argc, VALUE * argv)
|
||||||
{
|
{
|
||||||
return rb_funcallv(scheduler, id_kernel_sleep, argc, argv);
|
return rb_funcallv(scheduler, id_kernel_sleep, argc, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_block(VALUE scheduler, VALUE blocker, VALUE timeout)
|
VALUE
|
||||||
|
rb_scheduler_block(VALUE scheduler, VALUE blocker, VALUE timeout)
|
||||||
{
|
{
|
||||||
return rb_funcall(scheduler, id_block, 2, blocker, timeout);
|
return rb_funcall(scheduler, id_block, 2, blocker, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_unblock(VALUE scheduler, VALUE blocker, VALUE fiber)
|
VALUE
|
||||||
|
rb_scheduler_unblock(VALUE scheduler, VALUE blocker, VALUE fiber)
|
||||||
{
|
{
|
||||||
return rb_funcall(scheduler, id_unblock, 2, blocker, fiber);
|
return rb_funcall(scheduler, id_unblock, 2, blocker, fiber);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_io_wait(VALUE scheduler, VALUE io, VALUE events, VALUE timeout)
|
VALUE
|
||||||
|
rb_scheduler_io_wait(VALUE scheduler, VALUE io, VALUE events, VALUE timeout)
|
||||||
{
|
{
|
||||||
return rb_funcall(scheduler, id_io_wait, 3, io, events, timeout);
|
return rb_funcall(scheduler, id_io_wait, 3, io, events, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_io_wait_readable(VALUE scheduler, VALUE io)
|
VALUE
|
||||||
|
rb_scheduler_io_wait_readable(VALUE scheduler, VALUE io)
|
||||||
{
|
{
|
||||||
return rb_scheduler_io_wait(scheduler, io, RB_UINT2NUM(RUBY_IO_READABLE), Qnil);
|
return rb_scheduler_io_wait(scheduler, io, RB_UINT2NUM(RUBY_IO_READABLE), Qnil);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_io_wait_writable(VALUE scheduler, VALUE io)
|
VALUE
|
||||||
|
rb_scheduler_io_wait_writable(VALUE scheduler, VALUE io)
|
||||||
{
|
{
|
||||||
return rb_scheduler_io_wait(scheduler, io, RB_UINT2NUM(RUBY_IO_WRITABLE), Qnil);
|
return rb_scheduler_io_wait(scheduler, io, RB_UINT2NUM(RUBY_IO_WRITABLE), Qnil);
|
||||||
}
|
}
|
||||||
|
|
||||||
int rb_scheduler_supports_io_read(VALUE scheduler)
|
int
|
||||||
|
rb_scheduler_supports_io_read(VALUE scheduler)
|
||||||
{
|
{
|
||||||
return rb_respond_to(scheduler, id_io_read);
|
return rb_respond_to(scheduler, id_io_read);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_io_read(VALUE scheduler, VALUE io, VALUE buffer, size_t offset, size_t length)
|
VALUE
|
||||||
|
rb_scheduler_io_read(VALUE scheduler, VALUE io, VALUE buffer, size_t offset, size_t length)
|
||||||
{
|
{
|
||||||
return rb_funcall(scheduler, id_io_read, 4, io, buffer, SIZET2NUM(offset), SIZET2NUM(length));
|
return rb_funcall(scheduler, id_io_read, 4, io, buffer, SIZET2NUM(offset), SIZET2NUM(length));
|
||||||
}
|
}
|
||||||
|
|
||||||
int rb_scheduler_supports_io_write(VALUE scheduler)
|
int
|
||||||
|
rb_scheduler_supports_io_write(VALUE scheduler)
|
||||||
{
|
{
|
||||||
return rb_respond_to(scheduler, id_io_write);
|
return rb_respond_to(scheduler, id_io_write);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE rb_scheduler_io_write(VALUE scheduler, VALUE io, VALUE buffer, size_t offset, size_t length)
|
VALUE
|
||||||
|
rb_scheduler_io_write(VALUE scheduler, VALUE io, VALUE buffer, size_t offset, size_t length)
|
||||||
{
|
{
|
||||||
// We should ensure string has capacity to receive data, and then resize it afterwards.
|
// We should ensure string has capacity to receive data, and then resize it afterwards.
|
||||||
return rb_funcall(scheduler, id_io_write, 4, io, buffer, SIZET2NUM(offset), SIZET2NUM(length));
|
return rb_funcall(scheduler, id_io_write, 4, io, buffer, SIZET2NUM(offset), SIZET2NUM(length));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user