X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=bindings%2Fruby%2Fthreads.c;h=3e1fbf5d01558775017334ede827447cfd7759ce;hp=09906975f1e84091ead20878a06b96b60e55d0b1;hb=05dddf883dd762420bb8e6b86790e68d734fd568;hpb=c7893408bbe6904ae7da97aa203587af4ec2fac7 diff --git a/bindings/ruby/threads.c b/bindings/ruby/threads.c index 09906975..3e1fbf5d 100644 --- a/bindings/ruby/threads.c +++ b/bindings/ruby/threads.c @@ -1,6 +1,6 @@ /* The Ruby interface to the notmuch mail library * - * Copyright © 2010 Ali Polatel + * Copyright © 2010, 2011 Ali Polatel * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,41 +21,39 @@ #include "defs.h" /* - * call-seq: THREADS.destroy => nil + * call-seq: THREADS.destroy! => nil * * Destroys the threads, freeing all resources allocated for it. */ VALUE -notmuch_rb_threads_destroy(VALUE self) +notmuch_rb_threads_destroy (VALUE self) { notmuch_threads_t *threads; - Data_Get_Struct(self, notmuch_threads_t, threads); + Data_Get_Struct (self, notmuch_threads_t, threads); - notmuch_threads_destroy(threads); + notmuch_threads_destroy (threads); + DATA_PTR (self) = NULL; return Qnil; } - /* call-seq: THREADS.each {|item| block } => THREADS * * Calls +block+ once for each thread in +self+, passing that element as a * parameter. */ VALUE -notmuch_rb_threads_each(VALUE self) +notmuch_rb_threads_each (VALUE self) { notmuch_thread_t *thread; notmuch_threads_t *threads; - Data_Get_Struct(self, notmuch_threads_t, threads); - if (!threads) - return self; + Data_Get_Notmuch_Threads (self, threads); - for (; notmuch_threads_valid(threads); notmuch_threads_move_to_next(threads)) { - thread = notmuch_threads_get(threads); - rb_yield(Data_Wrap_Struct(notmuch_rb_cThread, NULL, NULL, thread)); + for (; notmuch_threads_valid (threads); notmuch_threads_move_to_next (threads)) { + thread = notmuch_threads_get (threads); + rb_yield (Data_Wrap_Struct (notmuch_rb_cThread, NULL, NULL, thread)); } return self;