serialize with lock

This commit is contained in:
2024-06-15 11:16:12 +02:00
parent fed25e4001
commit 3475a512cf
2 changed files with 17 additions and 3 deletions

View File

@@ -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();

View File

@@ -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();
}
}
}