org.jruby.Ruby.newErrnoEAGAINWritableError()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(2.6k)|赞(0)|评价(0)|浏览(94)

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

Ruby.newErrnoEAGAINWritableError介绍

暂无

代码示例

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

if (useException) {
  if (runtime.is1_9()) {
    throw runtime.newErrnoEAGAINWritableError("");
  } else {
    throw runtime.newErrnoEWOULDBLOCKError();

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

if (useException) {
  if (runtime.is1_9()) {
    throw runtime.newErrnoEAGAINWritableError("");
  } else {
    throw runtime.newErrnoEWOULDBLOCKError();

代码示例来源:origin: org.jruby/jruby-complete

private IRubyObject ioWriteNonblock(ThreadContext context, Ruby runtime, IRubyObject str, boolean no_exception) {
  OpenFile fptr;
  long n;
  if (!(str instanceof RubyString))
    str = str.asString();
  RubyIO io = GetWriteIO();
  fptr = io.getOpenFileChecked();
  boolean locked = fptr.lock();
  try {
    fptr.checkWritable(context);
    if (fptr.io_fflush(context) < 0)
      throw runtime.newErrnoFromErrno(fptr.errno(), fptr.getPath());
    fptr.setNonblock(runtime);
    ByteList strByteList = ((RubyString) str).getByteList();
    n = fptr.posix.write(fptr.fd(), strByteList.unsafeBytes(), strByteList.begin(), strByteList.getRealSize(), true);
    if (n == -1) {
      if (fptr.posix.errno == Errno.EWOULDBLOCK || fptr.posix.errno == Errno.EAGAIN) {
        if (no_exception) {
          return runtime.newSymbol("wait_writable");
        } else {
          throw runtime.newErrnoEAGAINWritableError("write would block");
        }
      }
      throw runtime.newErrnoFromErrno(fptr.posix.errno, fptr.getPath());
    }
  } finally {
    if (locked) fptr.unlock();
  }
  return runtime.newFixnum(n);
}

代码示例来源:origin: org.jruby/jruby-core

private IRubyObject ioWriteNonblock(ThreadContext context, Ruby runtime, IRubyObject str, boolean no_exception) {
  OpenFile fptr;
  long n;
  if (!(str instanceof RubyString))
    str = str.asString();
  RubyIO io = GetWriteIO();
  fptr = io.getOpenFileChecked();
  boolean locked = fptr.lock();
  try {
    fptr.checkWritable(context);
    if (fptr.io_fflush(context) < 0)
      throw runtime.newErrnoFromErrno(fptr.errno(), fptr.getPath());
    fptr.setNonblock(runtime);
    ByteList strByteList = ((RubyString) str).getByteList();
    n = fptr.posix.write(fptr.fd(), strByteList.unsafeBytes(), strByteList.begin(), strByteList.getRealSize(), true);
    if (n == -1) {
      if (fptr.posix.errno == Errno.EWOULDBLOCK || fptr.posix.errno == Errno.EAGAIN) {
        if (no_exception) {
          return runtime.newSymbol("wait_writable");
        } else {
          throw runtime.newErrnoEAGAINWritableError("write would block");
        }
      }
      throw runtime.newErrnoFromErrno(fptr.posix.errno, fptr.getPath());
    }
  } finally {
    if (locked) fptr.unlock();
  }
  return runtime.newFixnum(n);
}

相关文章

微信公众号

最新文章

更多

Ruby类方法