in nailgun-server/src/main/java/com/facebook/nailgun/NGUnixDomainSocket.java [145:167]
private void doWrite(ByteBuffer buf) throws IOException {
try {
int fdToWrite = fd.acquire();
if (fdToWrite == -1) {
return;
}
int ret = NGUnixDomainSocketLibrary.write(fdToWrite, buf, buf.remaining());
if (ret != buf.remaining()) {
// This shouldn't happen with standard blocking Unix domain sockets.
throw new IOException(
"Could not write "
+ buf.remaining()
+ " bytes as requested "
+ "(wrote "
+ ret
+ " bytes instead)");
}
} catch (LastErrorException e) {
throw new IOException(e);
} finally {
fd.release();
}
}