本文整理了Java中org.jruby.RubyHash.concurrentModification
方法的一些代码示例,展示了RubyHash.concurrentModification
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyHash.concurrentModification
方法的具体详情如下:
包路径:org.jruby.RubyHash
类名称:RubyHash
方法名:concurrentModification
暂无
代码示例来源:origin: org.jruby/jruby-complete
private <T> void visitLimited(ThreadContext context, VisitorWithState visitor, long size, T state) {
int startGeneration = generation;
long count = size;
int index = 0;
// visit not more than size entries
for (RubyHashEntry entry = head.nextAdded; entry != head && count != 0; entry = entry.nextAdded) {
if (startGeneration != generation) {
startGeneration = generation;
entry = head.nextAdded;
if (entry == head) break;
}
if (entry != null && entry.isLive()) {
visitor.visit(context, this, entry.key, entry.value, index++, state);
count--;
}
}
// it does not handle all concurrent modification cases,
// but at least provides correct marshal as we have exactly size entries visited (count == 0)
// or if count < 0 - skipped concurrent modification checks
if (count > 0) throw concurrentModification();
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
private void visitLimited(Visitor visitor, long size) {
int startGeneration = generation;
long count = size;
// visit not more than size entries
for (RubyHashEntry entry = head.nextAdded; entry != head && count != 0; entry = entry.nextAdded) {
if (startGeneration != generation) {
startGeneration = generation;
entry = head.nextAdded;
if (entry == head) break;
}
if (entry != null && entry.isLive()) {
visitor.visit(entry.key, entry.value);
count--;
}
}
// it does not handle all concurrent modification cases,
// but at least provides correct marshal as we have exactly size entries visited (count == 0)
// or if count < 0 - skipped concurrent modification checks
if (count > 0) throw concurrentModification();
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
private void visitLimited(Visitor visitor, long size) {
int startGeneration = generation;
long count = size;
// visit not more than size entries
for (RubyHashEntry entry = head.nextAdded; entry != head && count != 0; entry = entry.nextAdded) {
if (startGeneration != generation) {
startGeneration = generation;
entry = head.nextAdded;
if (entry == head) break;
}
if (entry != null && entry.isLive()) {
visitor.visit(entry.key, entry.value);
count--;
}
}
// it does not handle all concurrent modification cases,
// but at least provides correct marshal as we have exactly size entries visited (count == 0)
// or if count < 0 - skipped concurrent modification checks
if (count > 0) throw concurrentModification();
}
代码示例来源:origin: org.jruby/jruby-core
private <T> void visitLimited(ThreadContext context, VisitorWithState visitor, long size, T state) {
int startGeneration = generation;
long count = size;
int index = 0;
// visit not more than size entries
for (RubyHashEntry entry = head.nextAdded; entry != head && count != 0; entry = entry.nextAdded) {
if (startGeneration != generation) {
startGeneration = generation;
entry = head.nextAdded;
if (entry == head) break;
}
if (entry != null && entry.isLive()) {
visitor.visit(context, this, entry.key, entry.value, index++, state);
count--;
}
}
// it does not handle all concurrent modification cases,
// but at least provides correct marshal as we have exactly size entries visited (count == 0)
// or if count < 0 - skipped concurrent modification checks
if (count > 0) throw concurrentModification();
}
代码示例来源:origin: org.jruby/jruby-complete
/** rb_hash_keys
*
*/
@JRubyMethod(name = "keys")
public RubyArray keys(final ThreadContext context) {
try {
RubyArray keys = RubyArray.newBlankArray(context.runtime, size);
visitAll(context, StoreKeyVisitor, keys);
return keys;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: org.jruby/jruby-core
/** rb_hash_values
*
*/
@JRubyMethod(name = "values")
public RubyArray values(final ThreadContext context) {
try {
RubyArray values = RubyArray.newBlankArray(context.runtime, size);
visitAll(context, StoreValueVisitor, values);
return values;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: org.jruby/jruby-complete
/** rb_hash_values
*
*/
@JRubyMethod(name = "values")
public RubyArray values(final ThreadContext context) {
try {
RubyArray values = RubyArray.newBlankArray(context.runtime, size);
visitAll(context, StoreValueVisitor, values);
return values;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: org.jruby/jruby-core
/** rb_hash_keys
*
*/
@JRubyMethod(name = "keys")
public RubyArray keys(final ThreadContext context) {
try {
RubyArray keys = RubyArray.newBlankArray(context.runtime, size);
visitAll(context, StoreKeyVisitor, keys);
return keys;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
/** rb_hash_values
*
*/
@JRubyMethod(name = "values")
public RubyArray rb_values() {
try {
final RubyArray values = RubyArray.newArray(getRuntime(), size);
visitAll(new Visitor() {
public void visit(IRubyObject key, IRubyObject value) {
values.append(value);
}
});
return values;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
/** rb_hash_keys
*
*/
@JRubyMethod(name = "keys")
public RubyArray keys() {
final Ruby runtime = getRuntime();
try {
final RubyArray keys = RubyArray.newArray(runtime, size);
visitAll(new Visitor() {
public void visit(IRubyObject key, IRubyObject value) {
keys.append(key);
}
});
return keys;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
/** rb_hash_keys
*
*/
@JRubyMethod(name = "keys")
public RubyArray keys() {
final Ruby runtime = getRuntime();
try {
final RubyArray keys = RubyArray.newArray(runtime, size);
visitAll(new Visitor() {
public void visit(IRubyObject key, IRubyObject value) {
keys.append(key);
}
});
return keys;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
/** rb_hash_values
*
*/
@JRubyMethod(name = "values")
public RubyArray rb_values() {
try {
final RubyArray values = RubyArray.newArray(getRuntime(), size);
visitAll(new Visitor() {
public void visit(IRubyObject key, IRubyObject value) {
values.append(value);
}
});
return values;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
/** rb_hash_to_a
*
*/
@JRubyMethod(name = "to_a")
@Override
public RubyArray to_a() {
final Ruby runtime = getRuntime();
try {
final RubyArray result = RubyArray.newArray(runtime, size);
visitAll(new Visitor() {
public void visit(IRubyObject key, IRubyObject value) {
result.append(RubyArray.newArray(runtime, key, value));
}
});
result.setTaint(isTaint());
return result;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
/** rb_hash_to_a
*
*/
@JRubyMethod(name = "to_a")
@Override
public RubyArray to_a() {
final Ruby runtime = getRuntime();
try {
final RubyArray result = RubyArray.newArray(runtime, size);
visitAll(new Visitor() {
public void visit(IRubyObject key, IRubyObject value) {
result.append(RubyArray.newArray(runtime, key, value));
}
});
result.setTaint(isTaint());
return result;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: org.jruby/jruby-complete
/** rb_hash_to_a
*
*/
@JRubyMethod(name = "to_a")
@Override
public RubyArray to_a() {
final Ruby runtime = getRuntime();
try {
final RubyArray result = RubyArray.newBlankArray(runtime, size);
visitAll(runtime.getCurrentContext(), RubyHash.StoreKeyValueVisitor, result);
result.setTaint(isTaint());
return result;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
代码示例来源:origin: org.jruby/jruby-core
/** rb_hash_to_a
*
*/
@JRubyMethod(name = "to_a")
@Override
public RubyArray to_a() {
final Ruby runtime = getRuntime();
try {
final RubyArray result = RubyArray.newBlankArray(runtime, size);
visitAll(runtime.getCurrentContext(), RubyHash.StoreKeyValueVisitor, result);
result.setTaint(isTaint());
return result;
} catch (NegativeArraySizeException nase) {
throw concurrentModification();
}
}
内容来源于网络,如有侵权,请联系作者删除!