summaryrefslogtreecommitdiffstats
path: root/Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java
diff options
context:
space:
mode:
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java')
-rw-r--r--Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java b/Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java
index b865388f0..71633d10f 100644
--- a/Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java
+++ b/Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java
@@ -37,8 +37,8 @@ public abstract class AsyncStorageObjectHolder<T extends StorageObject> implemen
/**
* Warning: If you access this method, you have to acquire a read or write lock first
- *
- *
+ *
+ *
* @return Object storing all the data
*/
@Override
@@ -93,7 +93,7 @@ public abstract class AsyncStorageObjectHolder<T extends StorageObject> implemen
{
onReload(true);
}
-
+
public void onReload(boolean instant)
{
reader.schedule(instant);
@@ -141,6 +141,10 @@ public abstract class AsyncStorageObjectHolder<T extends StorageObject> implemen
public File onStart() throws IOException
{
final File file = getStorageFile();
+ while (rwl.getReadHoldCount() > 0)
+ {
+ rwl.readLock().unlock();
+ }
rwl.writeLock().lock();
return file;
}