本文整理了Java中java.nio.channels.SocketChannel.blockingLock()
方法的一些代码示例,展示了SocketChannel.blockingLock()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。SocketChannel.blockingLock()
方法的具体详情如下:
包路径:java.nio.channels.SocketChannel
类名称:SocketChannel
方法名:blockingLock
暂无
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
@JRubyMethod(name = "accept")
public IRubyObject accept(ThreadContext context) {
Ruby runtime = context.runtime;
RubyTCPSocket socket = new RubyTCPSocket(runtime, runtime.getClass("TCPSocket"));
try {
RubyThread thread = context.getThread();
while (true) {
boolean ready = thread.select(this, SelectionKey.OP_ACCEPT);
if (!ready) {
// we were woken up without being selected...poll for thread events and go back to sleep
context.pollThreadEvents();
} else {
SocketChannel connected = ssc.accept();
if (connected == null) continue;
connected.finishConnect();
// Force the client socket to be blocking
synchronized (connected.blockingLock()) {
connected.configureBlocking(false);
connected.configureBlocking(true);
}
// otherwise one key has been selected (ours) so we get the channel and hand it off
socket.initSocket(runtime, new ChannelDescriptor(connected, newModeFlags(runtime, ModeFlags.RDWR)));
return socket;
}
}
} catch(IOException e) {
throw SocketUtils.sockerr(runtime, "problem when accepting");
}
}
代码示例来源:origin: org.jruby/jruby-core
@JRubyMethod(name = "accept")
public IRubyObject accept(ThreadContext context) {
Ruby runtime = context.runtime;
RubyTCPSocket socket = new RubyTCPSocket(runtime, runtime.getClass("TCPSocket"));
try {
RubyThread thread = context.getThread();
while (true) {
boolean ready = thread.select(this, SelectionKey.OP_ACCEPT);
if (!ready) {
// we were woken up without being selected...poll for thread events and go back to sleep
context.pollThreadEvents();
} else {
SocketChannel connected = getServerSocketChannel().accept();
if (connected == null) continue;
connected.finishConnect();
// Force the client socket to be blocking
synchronized (connected.blockingLock()) {
connected.configureBlocking(false);
connected.configureBlocking(true);
}
// otherwise one key has been selected (ours) so we get the channel and hand it off
socket.initSocket(newChannelFD(runtime, connected));
return socket;
}
}
} catch(IOException e) {
throw runtime.newIOErrorFromException(e);
}
}
代码示例来源:origin: org.jruby/jruby-complete
@JRubyMethod(name = "accept")
public IRubyObject accept(ThreadContext context) {
Ruby runtime = context.runtime;
RubyTCPSocket socket = new RubyTCPSocket(runtime, runtime.getClass("TCPSocket"));
try {
RubyThread thread = context.getThread();
while (true) {
boolean ready = thread.select(this, SelectionKey.OP_ACCEPT);
if (!ready) {
// we were woken up without being selected...poll for thread events and go back to sleep
context.pollThreadEvents();
} else {
SocketChannel connected = getServerSocketChannel().accept();
if (connected == null) continue;
connected.finishConnect();
// Force the client socket to be blocking
synchronized (connected.blockingLock()) {
connected.configureBlocking(false);
connected.configureBlocking(true);
}
// otherwise one key has been selected (ours) so we get the channel and hand it off
socket.initSocket(newChannelFD(runtime, connected));
return socket;
}
}
} catch(IOException e) {
throw runtime.newIOErrorFromException(e);
}
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
@JRubyMethod(name = "accept")
public IRubyObject accept(ThreadContext context) {
Ruby runtime = context.runtime;
RubyTCPSocket socket = new RubyTCPSocket(runtime, runtime.getClass("TCPSocket"));
try {
RubyThread thread = context.getThread();
while (true) {
boolean ready = thread.select(this, SelectionKey.OP_ACCEPT);
if (!ready) {
// we were woken up without being selected...poll for thread events and go back to sleep
context.pollThreadEvents();
} else {
SocketChannel connected = getServerSocketChannel().accept();
if (connected == null) continue;
connected.finishConnect();
// Force the client socket to be blocking
synchronized (connected.blockingLock()) {
connected.configureBlocking(false);
connected.configureBlocking(true);
}
// otherwise one key has been selected (ours) so we get the channel and hand it off
socket.initSocket(runtime, new ChannelDescriptor(connected, newModeFlags(runtime, ModeFlags.RDWR)));
return socket;
}
}
} catch(IOException e) {
throw SocketUtils.sockerr(runtime, "problem when accepting");
}
}
内容来源于网络,如有侵权,请联系作者删除!