com.eclipsesource.v8.V8.isReleased()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(4.9k)|赞(0)|评价(0)|浏览(87)

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

V8.isReleased介绍

暂无

代码示例

代码示例来源:origin: eclipsesource/J2V8

void checkThread() {
  locker.checkThread();
  if (isReleased()) {
    throw new Error("Runtime disposed error");
  }
}

代码示例来源:origin: eclipsesource/J2V8

@Override
public String toString() {
  if (released || v8.isReleased()) {
    return "[Function released]";
  }
  return super.toString();
}

代码示例来源:origin: eclipsesource/J2V8

@Override
public String toString() {
  if (released || v8.isReleased()) {
    return "[Array released]";
  }
  return super.toString();
}

代码示例来源:origin: eclipsesource/J2V8

void checkRuntime(final V8Value value) {
  if ((value == null) || value.isUndefined()) {
    return;
  }
  V8 runtime = value.getRuntime();
  if ((runtime == null) ||
      runtime.isReleased() ||
      (runtime != this)) {
    throw new Error("Invalid target runtime");
  }
}

代码示例来源:origin: eclipsesource/J2V8

/**
   * Releases the underlying {@link V8} instance.
   *
   * This method should be invoked once you're done using this object,
   * otherwise a large amount of garbage could be left on the JVM due to
   * native resources.
   *
   * <b>Note:</b> If this method has already been called once, it
   * will do nothing.
   */
  public void release() {
    if ((v8 != null) && !v8.isReleased()) {
      // Release the V8 instance from the V8 thread context.
      run(new V8Runnable() {
        @Override
        public void run(final V8 v8) {
          if ((v8 != null) && !v8.isReleased()) {
            v8.close();
          }
        }
      });
    }
  }
}

代码示例来源:origin: eclipsesource/J2V8

/**
 * Release the lock if it's currently held by the calling thread.
 * If the current thread does not hold the lock, and error will be
 * thrown. If no thread holds the lock then nothing will happen.
 */
public synchronized void release() {
  if ((released && (thread == null)) || runtime.isReleased()) {
    return;
  }
  checkThread();
  runtime.releaseLock(runtime.getV8RuntimePtr());
  thread = null;
  released = true;
}

代码示例来源:origin: eclipsesource/J2V8

/**
 * Releases the NodeJS runtime.
 */
public void release() {
  v8.checkThread();
  if (!require.isReleased()) {
    require.close();
  }
  if (!v8.isReleased()) {
    v8.close();
  }
}

代码示例来源:origin: eclipsesource/J2V8

@Override
public String toString() {
  if (isReleased() || v8.isReleased()) {
    return "[Object released]";
  }
  v8.checkThread();
  return v8.toString(v8.getV8RuntimePtr(), getHandle());
}

代码示例来源:origin: eclipsesource/J2V8

if (isReleased()) {
  return;

代码示例来源:origin: eclipsesource/J2V8

@Override
public String toString() {
  if (released || v8.isReleased()) {
    return "[Array released]";
  }
  return super.toString();
}

代码示例来源:origin: eclipsesource/J2V8

@Override
public String toString() {
  if (released || v8.isReleased()) {
    return "[Function released]";
  }
  return super.toString();
}

代码示例来源:origin: eclipsesource/J2V8

void checkThread() {
  locker.checkThread();
  if (isReleased()) {
    throw new Error("Runtime disposed error");
  }
}

代码示例来源:origin: eclipsesource/J2V8

void checkRuntime(final V8Value value) {
  if ((value == null) || value.isUndefined()) {
    return;
  }
  V8 runtime = value.getRuntime();
  if ((runtime == null) ||
      runtime.isReleased() ||
      (runtime != this)) {
    throw new Error("Invalid target runtime");
  }
}

代码示例来源:origin: eclipsesource/J2V8

/**
   * Releases the underlying {@link V8} instance.
   *
   * This method should be invoked once you're done using this object,
   * otherwise a large amount of garbage could be left on the JVM due to
   * native resources.
   *
   * <b>Note:</b> If this method has already been called once, it
   * will do nothing.
   */
  public void release() {
    if ((v8 != null) && !v8.isReleased()) {
      // Release the V8 instance from the V8 thread context.
      run(new V8Runnable() {
        @Override
        public void run(final V8 v8) {
          if ((v8 != null) && !v8.isReleased()) {
            v8.close();
          }
        }
      });
    }
  }
}

代码示例来源:origin: eclipsesource/J2V8

/**
 * Release the lock if it's currently held by the calling thread.
 * If the current thread does not hold the lock, and error will be
 * thrown. If no thread holds the lock then nothing will happen.
 */
public synchronized void release() {
  if ((released && (thread == null)) || runtime.isReleased()) {
    return;
  }
  checkThread();
  runtime.releaseLock(runtime.getV8RuntimePtr());
  thread = null;
  released = true;
}

代码示例来源:origin: eclipsesource/J2V8

/**
 * Releases the NodeJS runtime.
 */
public void release() {
  v8.checkThread();
  if (!require.isReleased()) {
    require.close();
  }
  if (!v8.isReleased()) {
    v8.close();
  }
}

代码示例来源:origin: eclipsesource/J2V8

@Override
public String toString() {
  if (isReleased() || v8.isReleased()) {
    return "[Object released]";
  }
  v8.checkThread();
  return v8.toString(v8.getV8RuntimePtr(), getHandle());
}

代码示例来源:origin: eclipsesource/J2V8

@Test
public void testExceptionInReleaseHandlerStillReleasesV8() {
  V8 testV8 = V8.createV8Runtime();
  V8Runnable releaseHandler = mock(V8Runnable.class);
  doThrow(new RuntimeException()).when(releaseHandler).run(any(V8.class));
  testV8.addReleaseHandler(releaseHandler);
  try {
    testV8.close();
  } catch (Exception e) {
    assertTrue(testV8.isReleased());
    return;
  }
  fail("Exception should have been caught.");
}

代码示例来源:origin: eclipsesource/J2V8

if (isReleased()) {
  return;

代码示例来源:origin: com.eclipsesource.j2v8/j2v8_macosx_x86_64

/**
 * Releases the NodeJS runtime.
 */
public void release() {
  v8.checkThread();
  if (!require.isReleased()) {
    require.release();
  }
  if (!v8.isReleased()) {
    v8.release();
  }
}

相关文章

微信公众号

最新文章

更多

V8类方法