本文整理了Java中com.oracle.truffle.api.nodes.Node.getLock()
方法的一些代码示例,展示了Node.getLock()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.getLock()
方法的具体详情如下:
包路径:com.oracle.truffle.api.nodes.Node
类名称:Node
方法名:getLock
[英]Returns a lock object that can be used to synchronize modifications to the AST. Don't lock if you call into foreign code with potential recursions to avoid deadlocks. Use responsibly.
[中]返回可用于同步对AST的修改的锁对象。如果调用具有潜在递归的外部代码以避免死锁,请不要锁定。负责任地使用。
代码示例来源:origin: org.graalvm.truffle/truffle-api
@Override
public Lock getLock(Node node) {
return node.getLock();
}
代码示例来源:origin: com.oracle.truffle/truffle-api
@Override
public Lock getLock(Node node) {
return node.getLock();
}
代码示例来源:origin: org.graalvm.truffle/truffle-api
private boolean inAtomicBlock() {
return ((ReentrantLock) getLock()).isHeldByCurrentThread();
}
代码示例来源:origin: com.oracle.truffle/truffle-api
private boolean inAtomicBlock() {
return ((ReentrantLock) getLock()).isHeldByCurrentThread();
}
代码示例来源:origin: org.graalvm.truffle/truffle-api
/** @since 0.8 or earlier */
public final void atomic(Runnable closure) {
Lock lock = getLock();
try {
lock.lock();
closure.run();
} finally {
lock.unlock();
}
}
代码示例来源:origin: com.oracle.truffle/truffle-api
/** @since 0.8 or earlier */
public final void atomic(Runnable closure) {
Lock lock = getLock();
try {
lock.lock();
closure.run();
} finally {
lock.unlock();
}
}
代码示例来源:origin: org.graalvm.truffle/truffle-api
/** @since 0.8 or earlier */
public final <T> T atomic(Callable<T> closure) {
Lock lock = getLock();
try {
lock.lock();
return closure.call();
} catch (RuntimeException | Error e) {
throw e;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
lock.unlock();
}
}
代码示例来源:origin: com.oracle.truffle/truffle-api
/** @since 0.8 or earlier */
public final <T> T atomic(Callable<T> closure) {
Lock lock = getLock();
try {
lock.lock();
return closure.call();
} catch (RuntimeException | Error e) {
throw e;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
lock.unlock();
}
}
内容来源于网络,如有侵权,请联系作者删除!