blob: a1763e2929424623c02117cf2befe203e87bbf6c [file] [log] [blame]
public class concurency extends groovy.lang.Script {
public static void main(java.lang.String[] args) {
new concurency(new groovy.lang.Binding(args)).run();
}
public java.lang.Object run() {
final java.util.concurrent.atomic.AtomicInteger counter = new java.util.concurrent.atomic.AtomicInteger();
java.lang.Thread th = org.codehaus.groovy.runtime.DefaultGroovyStaticMethods.start(null, new groovy.lang.Closure<java.lang.Void>(this, this) {
public void doCall(java.lang.Object it) {
for(java.lang.Integer i : new groovy.lang.IntRange(1, 8)){
org.codehaus.groovy.runtime.DefaultGroovyStaticMethods.sleep(null, 30);
out("thread loop " + java.lang.String.valueOf(i));
counter.incrementAndGet();
}
}
public void doCall() {
doCall(null);
}
});
for(java.lang.Integer j : new groovy.lang.IntRange(1, 4)){
org.codehaus.groovy.runtime.DefaultGroovyStaticMethods.sleep(null, 50);
out("main loop " + java.lang.String.valueOf(j));
counter.incrementAndGet();
}
th.join();
assert counter.get() == 12;
return null;
}
public synchronized void out(groovy.lang.GString message) {
println(message);
}
public concurency(groovy.lang.Binding binding) {
super(binding);
}
public concurency() {
super();
}
}