mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-11-17 23:34:51 +00:00
Use some sweet tricks to have a weak set to store open files
This commit is contained in:
parent
06b63980eb
commit
b0ac48b9a3
@ -11,7 +11,6 @@ import dan200.computercraft.api.filesystem.IMount;
|
|||||||
import dan200.computercraft.api.filesystem.IWritableMount;
|
import dan200.computercraft.api.filesystem.IWritableMount;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.lang.ref.WeakReference;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@ -292,7 +291,7 @@ public class FileSystem
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final Map<String, MountWrapper> m_mounts = new HashMap<String, MountWrapper>();
|
private final Map<String, MountWrapper> m_mounts = new HashMap<String, MountWrapper>();
|
||||||
private final WeakHashMap<IMountedFile, Object> m_openFiles = new WeakHashMap<IMountedFile, Object>();
|
private final Set<IMountedFile> m_openFiles = Collections.newSetFromMap( new WeakHashMap<IMountedFile, Boolean>() );
|
||||||
|
|
||||||
public FileSystem( String rootLabel, IMount rootMount ) throws FileSystemException
|
public FileSystem( String rootLabel, IMount rootMount ) throws FileSystemException
|
||||||
{
|
{
|
||||||
@ -309,7 +308,7 @@ public class FileSystem
|
|||||||
// Close all dangling open files
|
// Close all dangling open files
|
||||||
synchronized( m_openFiles )
|
synchronized( m_openFiles )
|
||||||
{
|
{
|
||||||
for(IMountedFile file : m_openFiles.keySet())
|
for(IMountedFile file : m_openFiles)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
file.close();
|
file.close();
|
||||||
|
Loading…
Reference in New Issue
Block a user