com.oracle.truffle.api.nodes.Node.getLock()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(1.9k)|赞(0)|评价(0)|浏览(610)

本文整理了Java中com.oracle.truffle.api.nodes.Node.getLock()方法的一些代码示例,展示了Node.getLock()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.getLock()方法的具体详情如下:
包路径:com.oracle.truffle.api.nodes.Node
类名称:Node
方法名:getLock

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

  1. @Override
  2. public Lock getLock(Node node) {
  3. return node.getLock();
  4. }

代码示例来源:origin: com.oracle.truffle/truffle-api

  1. @Override
  2. public Lock getLock(Node node) {
  3. return node.getLock();
  4. }

代码示例来源:origin: org.graalvm.truffle/truffle-api

  1. private boolean inAtomicBlock() {
  2. return ((ReentrantLock) getLock()).isHeldByCurrentThread();
  3. }

代码示例来源:origin: com.oracle.truffle/truffle-api

  1. private boolean inAtomicBlock() {
  2. return ((ReentrantLock) getLock()).isHeldByCurrentThread();
  3. }

代码示例来源:origin: org.graalvm.truffle/truffle-api

  1. /** @since 0.8 or earlier */
  2. public final void atomic(Runnable closure) {
  3. Lock lock = getLock();
  4. try {
  5. lock.lock();
  6. closure.run();
  7. } finally {
  8. lock.unlock();
  9. }
  10. }

代码示例来源:origin: com.oracle.truffle/truffle-api

  1. /** @since 0.8 or earlier */
  2. public final void atomic(Runnable closure) {
  3. Lock lock = getLock();
  4. try {
  5. lock.lock();
  6. closure.run();
  7. } finally {
  8. lock.unlock();
  9. }
  10. }

代码示例来源:origin: org.graalvm.truffle/truffle-api

  1. /** @since 0.8 or earlier */
  2. public final <T> T atomic(Callable<T> closure) {
  3. Lock lock = getLock();
  4. try {
  5. lock.lock();
  6. return closure.call();
  7. } catch (RuntimeException | Error e) {
  8. throw e;
  9. } catch (Exception e) {
  10. throw new RuntimeException(e);
  11. } finally {
  12. lock.unlock();
  13. }
  14. }

代码示例来源:origin: com.oracle.truffle/truffle-api

  1. /** @since 0.8 or earlier */
  2. public final <T> T atomic(Callable<T> closure) {
  3. Lock lock = getLock();
  4. try {
  5. lock.lock();
  6. return closure.call();
  7. } catch (RuntimeException | Error e) {
  8. throw e;
  9. } catch (Exception e) {
  10. throw new RuntimeException(e);
  11. } finally {
  12. lock.unlock();
  13. }
  14. }

相关文章