Fix race condition in StreamCopyThread
If we get an interrupt during an IO operation (src.read or dst.write) caused by the flush() method incrementing the flush counter, ensure we restart the proper section of code. Just ignore the interrupt and continue running. Bug: 313082 Change-Id: Ib2b37901af8141289bbac9807cacf42b4e2461bd Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
ae972e774e
commit
b3247ba524
|
@ -100,10 +100,7 @@ public void run() {
|
|||
try {
|
||||
n = src.read(buf);
|
||||
} catch (InterruptedIOException wakey) {
|
||||
if (flushCounter.get() > 0)
|
||||
continue;
|
||||
else
|
||||
throw wakey;
|
||||
}
|
||||
if (n < 0)
|
||||
break;
|
||||
|
@ -112,10 +109,7 @@ public void run() {
|
|||
try {
|
||||
dst.write(buf, 0, n);
|
||||
} catch (InterruptedIOException wakey) {
|
||||
if (flushCounter.get() > 0)
|
||||
continue;
|
||||
else
|
||||
throw wakey;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue