mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
mruby-sleep,mruby-task: define sleep methods as module functions
change sleep, usleep, sleep_ms from private methods to module functions to match cruby behavior where sleep can be called as both bare sleep and kernel.sleep. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -172,8 +172,8 @@ f_usleep(mrb_state *mrb, mrb_value self)
|
||||
void
|
||||
mrb_mruby_sleep_gem_init(mrb_state *mrb)
|
||||
{
|
||||
mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(sleep), f_sleep, MRB_ARGS_REQ(1));
|
||||
mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(usleep), f_usleep, MRB_ARGS_REQ(1));
|
||||
mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(sleep), f_sleep, MRB_ARGS_REQ(1));
|
||||
mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(usleep), f_usleep, MRB_ARGS_REQ(1));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -1103,13 +1103,13 @@ mrb_mruby_task_gem_init(mrb_state *mrb)
|
||||
mrb_define_method_id(mrb, task_class, MRB_SYM(terminate), mrb_task_terminate, MRB_ARGS_NONE());
|
||||
mrb_define_method_id(mrb, task_class, MRB_SYM(join), mrb_task_join, MRB_ARGS_NONE());
|
||||
|
||||
/* Kernel methods
|
||||
/* Kernel methods (module functions like CRuby)
|
||||
* Note: sleep and usleep override mruby-sleep's implementation to be task-aware
|
||||
* (cooperative sleep within tasks, blocking sleep otherwise)
|
||||
*/
|
||||
mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(sleep), mrb_f_sleep, MRB_ARGS_OPT(1));
|
||||
mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(usleep), mrb_f_usleep, MRB_ARGS_REQ(1));
|
||||
mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(sleep_ms), mrb_f_sleep_ms, MRB_ARGS_REQ(1));
|
||||
mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(sleep), mrb_f_sleep, MRB_ARGS_OPT(1));
|
||||
mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(usleep), mrb_f_usleep, MRB_ARGS_REQ(1));
|
||||
mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(sleep_ms), mrb_f_sleep_ms, MRB_ARGS_REQ(1));
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user