/*
 * call-seq:
 *      rd.incr(index[, number])     -> result
 *
 * Increments the value referred to by the +index+ by +number+.
 * +number+ defaults to +1+ if unspecified.
 */
static VALUE incr(int argc, VALUE *argv, VALUE self)
{
        unsigned long nr = incr_decr_arg(argc, argv);

        return ULONG2NUM(__sync_add_and_fetch(addr_of(self, argv[0]), nr));
}