diff options
author | Simon Rettberg | 2022-03-21 17:22:16 +0100 |
---|---|---|
committer | Simon Rettberg | 2022-03-21 17:22:16 +0100 |
commit | ad0788e8fbead90d1ab03ba1a5c83b00114cb3a0 (patch) | |
tree | af62b617fb6149afce16d417474abd49f373cbf9 /dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java | |
parent | [client] Cleanup chunk data lists when upload finished or is cancelled (diff) | |
download | tutor-module-ad0788e8fbead90d1ab03ba1a5c83b00114cb3a0.tar.gz tutor-module-ad0788e8fbead90d1ab03ba1a5c83b00114cb3a0.tar.xz tutor-module-ad0788e8fbead90d1ab03ba1a5c83b00114cb3a0.zip |
[client] Memory management; handle OOM when hashing, do not skip blocks
Try to free some references regarding transfers earlier, e.g. the hash
worker and list of hashes as soon as hashing is finished on upload, not
only when the upload is finished and the window is closed.
Properly delay hashing of blocks in OOM scenarios, and be more
conservative with the number of hash workers, i.e. take maximum JVM
memory into account.
Also, improve thread naming.
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java index 0692f8a2..3b57222f 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.RandomAccessFile; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -28,7 +29,9 @@ public class DownloadTask extends TransferTask { * Logger instance for this class. */ private final static Logger LOGGER = LogManager.getLogger(DownloadTask.class); - + + private static final AtomicInteger THREAD_ID = new AtomicInteger(); + private final String host; private final int port; private final String downloadToken; @@ -122,6 +125,10 @@ public class DownloadTask extends TransferTask { private class DownloadThread extends TransferThread { private Downloader downloader = null; private DownloadHandler cb = new DownloadHandler(); + + public DownloadThread() { + super("UpConn#" + THREAD_ID.incrementAndGet()); + } @Override public void run() { |