* commit 'caf6497b9a0347da7d5acbe678adc2c8187176c0': Changes to support asynchronous close interruption
This commit is contained in:
@@ -42,6 +42,7 @@ import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.net.DatagramSocket;
|
||||
import java.net.Socket;
|
||||
import java.nio.ByteOrder;
|
||||
@@ -698,6 +699,9 @@ public class ParcelFileDescriptor implements Parcelable, Closeable {
|
||||
} catch (ErrnoException e) {
|
||||
// Reporting status is best-effort
|
||||
Log.w(TAG, "Failed to report status: " + e);
|
||||
} catch (InterruptedIOException e) {
|
||||
// Reporting status is best-effort
|
||||
Log.w(TAG, "Failed to report status: " + e);
|
||||
}
|
||||
|
||||
} finally {
|
||||
@@ -728,6 +732,9 @@ public class ParcelFileDescriptor implements Parcelable, Closeable {
|
||||
Log.d(TAG, "Failed to read status; assuming dead: " + e);
|
||||
return new Status(Status.DEAD);
|
||||
}
|
||||
} catch (InterruptedIOException e) {
|
||||
Log.d(TAG, "Failed to read status; assuming dead: " + e);
|
||||
return new Status(Status.DEAD);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ import static libcore.io.OsConstants.*;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.InetUnixAddress;
|
||||
|
||||
@@ -178,7 +179,7 @@ final class NativeCrashListener extends Thread {
|
||||
}
|
||||
|
||||
static int readExactly(FileDescriptor fd, byte[] buffer, int offset, int numBytes)
|
||||
throws ErrnoException {
|
||||
throws ErrnoException, InterruptedIOException {
|
||||
int totalRead = 0;
|
||||
while (numBytes > 0) {
|
||||
int n = Libcore.os.read(fd, buffer, offset + totalRead, numBytes);
|
||||
|
||||
Reference in New Issue
Block a user