2021-07-24 02:37:17 +00:00
|
|
|
package c.f.m;
|
|
|
|
|
|
|
|
import java.io.Closeable;
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.nio.channels.FileLock;
|
|
|
|
/* compiled from: FileLocker */
|
|
|
|
public final class g implements Closeable {
|
2021-12-02 18:53:44 +00:00
|
|
|
public final FileOutputStream j;
|
|
|
|
public final FileLock k;
|
2021-07-24 02:37:17 +00:00
|
|
|
|
|
|
|
public g(File file) throws IOException {
|
|
|
|
FileOutputStream fileOutputStream = new FileOutputStream(file);
|
2021-12-02 18:53:44 +00:00
|
|
|
this.j = fileOutputStream;
|
2021-07-24 02:37:17 +00:00
|
|
|
try {
|
|
|
|
FileLock lock = fileOutputStream.getChannel().lock();
|
|
|
|
if (lock == null) {
|
|
|
|
fileOutputStream.close();
|
|
|
|
}
|
2021-12-02 18:53:44 +00:00
|
|
|
this.k = lock;
|
2021-07-24 02:37:17 +00:00
|
|
|
} catch (Throwable th) {
|
2021-12-02 18:53:44 +00:00
|
|
|
this.j.close();
|
2021-07-24 02:37:17 +00:00
|
|
|
throw th;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // java.io.Closeable, java.lang.AutoCloseable
|
|
|
|
public void close() throws IOException {
|
|
|
|
try {
|
2021-12-02 18:53:44 +00:00
|
|
|
FileLock fileLock = this.k;
|
2021-07-24 02:37:17 +00:00
|
|
|
if (fileLock != null) {
|
|
|
|
fileLock.release();
|
|
|
|
}
|
|
|
|
} finally {
|
2021-12-02 18:53:44 +00:00
|
|
|
this.j.close();
|
2021-07-24 02:37:17 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|