[macruby-changes] [3266] MacRuby/trunk/gcd.c
source_changes at macosforge.org
source_changes at macosforge.org
Wed Jan 13 15:03:01 PST 2010
Revision: 3266
http://trac.macosforge.org/projects/ruby/changeset/3266
Author: ernest.prabhakar at gmail.com
Date: 2010-01-13 15:02:59 -0800 (Wed, 13 Jan 2010)
Log Message:
-----------
Merged rb_dispatch_prepare_block and given_block
Modified Paths:
--------------
MacRuby/trunk/gcd.c
Modified: MacRuby/trunk/gcd.c
===================================================================
--- MacRuby/trunk/gcd.c 2010-01-13 23:02:57 UTC (rev 3265)
+++ MacRuby/trunk/gcd.c 2010-01-13 23:02:59 UTC (rev 3266)
@@ -111,16 +111,6 @@
static VALUE cTimer;
static VALUE cSemaphore;
-static inline rb_vm_block_t *
-given_block(void)
-{
- rb_vm_block_t *block = rb_vm_current_block();
- if (block == NULL) {
- rb_raise(rb_eArgError, "block not given");
- }
- return block;
-}
-
static inline void
Check_Queue(VALUE object)
{
@@ -352,9 +342,14 @@
rb_eStandardError);
}
+
static rb_vm_block_t *
-rb_dispatch_prepare_block(rb_vm_block_t *block)
+get_prepared_block()
{
+ rb_vm_block_t *block = rb_vm_current_block();
+ if (block == NULL) {
+ rb_raise(rb_eArgError, "block not given");
+ }
rb_vm_set_multithreaded(true);
#if GCD_BLOCKS_COPY_DVARS
block = rb_vm_dup_block(block);
@@ -398,9 +393,7 @@
static VALUE
rb_queue_dispatch_async(VALUE self, SEL sel, int argc, VALUE *argv)
{
- rb_vm_block_t *block = given_block();
- block = rb_dispatch_prepare_block(block);
-
+ rb_vm_block_t *block = get_prepared_block();
VALUE group;
rb_scan_args(argc, argv, "01", &group);
@@ -434,9 +427,7 @@
static VALUE
rb_queue_dispatch_sync(VALUE self, SEL sel)
{
- rb_vm_block_t *block = given_block();
- block = rb_dispatch_prepare_block(block);
-
+ rb_vm_block_t *block = get_prepared_block();
dispatch_sync_f(RQueue(self)->queue, (void *)block,
rb_queue_dispatcher);
@@ -456,9 +447,7 @@
rb_queue_dispatch_after(VALUE self, SEL sel, VALUE delay)
{
dispatch_time_t offset = NIL_P(delay) ? DISPATCH_TIME_NOW : rb_num2timeout(delay);
- rb_vm_block_t *block = given_block();
- block = rb_dispatch_prepare_block(block);
-
+ rb_vm_block_t *block = get_prepared_block();
dispatch_after_f(offset, RQueue(self)->queue, (void *)block,
rb_queue_dispatcher);
@@ -494,9 +483,7 @@
static VALUE
rb_queue_apply(VALUE self, SEL sel, VALUE n)
{
- rb_vm_block_t *block = given_block();
- block = rb_dispatch_prepare_block(block);
-
+ rb_vm_block_t *block = get_prepared_block();
dispatch_apply_f(NUM2SIZET(n), RQueue(self)->queue, (void *)block,
rb_queue_applier);
@@ -651,9 +638,7 @@
static VALUE
rb_group_notify(VALUE self, SEL sel, VALUE target)
{
- rb_vm_block_t *block = given_block();
- block = rb_dispatch_prepare_block(block);
-
+ rb_vm_block_t *block = get_prepared_block();
Check_Queue(target);
dispatch_group_notify_f(RGroup(self)->group, RQueue(target)->queue,
@@ -744,9 +729,9 @@
enum SOURCE_TYPE_ENUM value = NUM2LONG(num);
if (value == SOURCE_TYPE_READ || value == SOURCE_TYPE_VNODE
|| value == SOURCE_TYPE_WRITE) {
- return YES;
+ return true;
}
- return NO;
+ return false;
}
static VALUE
@@ -772,7 +757,7 @@
rb_source_on_event(VALUE self, SEL sel)
{
rb_source_t *src = RSource(self);
- rb_vm_block_t *block = given_block();
+ rb_vm_block_t *block = get_prepared_block();
GC_WB(&src->event_handler, block);
GC_RETAIN(self);
dispatch_set_context(src->source, (void *)self); // retain this?
@@ -952,14 +937,15 @@
}
}
-
+#ifndef CANCEL
static void
rb_source_close_handler(void* io_ptr)
{
VALUE io = (VALUE)io_ptr;
- rb_vm_call(io, selClose, 0, NULL, NO);
+ rb_vm_call(io, selClose, 0, NULL, false);
//GC_RELEASE(io);
}
+#endif
/*
* call-seq:
@@ -995,16 +981,18 @@
rb_source_file_init(VALUE self, SEL sel,
VALUE type, VALUE io, VALUE mask, VALUE queue)
{
- if (rb_is_file_source_type(type) == NO) {
+ if (rb_is_file_source_type(type) == false) {
rb_raise(rb_eArgError, "%ld not a file source type", NUM2LONG(type));
}
- VALUE handle = rb_vm_call(io, selFileNo, 0, NULL, NO);
+ VALUE handle = rb_vm_call(io, selFileNo, 0, NULL, false);
rb_source_setup(self, sel, type, handle, mask, queue);
+#ifndef CANCEL
rb_source_t *src = RSource(self);
dispatch_set_context(src->source, (void*)io); // should this be retained?
//GC_RETAIN(io);
dispatch_source_set_cancel_handler_f(src->source, rb_source_close_handler);
+#endif
rb_dispatch_resume(self, 0);
return self;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100113/8686133b/attachment-0001.html>
More information about the macruby-changes
mailing list