mirror of
https://github.com/usatiuk/dhfs.git
synced 2025-10-28 20:47:49 +01:00
serialize with lock
This commit is contained in:
@@ -6,8 +6,6 @@ import java.io.Serializable;
|
||||
import java.util.NavigableMap;
|
||||
import java.util.TreeMap;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.locks.ReadWriteLock;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class File extends DirEntry {
|
||||
@@ -21,7 +19,6 @@ public class File extends DirEntry {
|
||||
}
|
||||
|
||||
final FileData fileData = new FileData();
|
||||
final ReadWriteLock lock = new ReentrantReadWriteLock();
|
||||
|
||||
public <T> T runReadLocked(Function<FileData, T> fn) throws Exception {
|
||||
lock.readLock().lock();
|
||||
|
||||
@@ -1,7 +1,24 @@
|
||||
package com.usatiuk.dhfs.storage.objects.jrepository;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.concurrent.locks.ReadWriteLock;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
|
||||
public abstract class JObject implements Serializable {
|
||||
public abstract String getName();
|
||||
|
||||
protected final ReadWriteLock lock = new ReentrantReadWriteLock();
|
||||
|
||||
@Serial
|
||||
private void writeObject(ObjectOutputStream oos) throws IOException {
|
||||
lock.readLock().lock();
|
||||
try {
|
||||
oos.defaultWriteObject();
|
||||
} finally {
|
||||
lock.readLock().unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user