Skip to content

Commit dd87f85

Browse files
committed
allow only one download access
1 parent 406f0e1 commit dd87f85

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

Runtime/LLMManager.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public class LLMManager
3232
{
3333
public static float downloadProgress = 1;
3434
public static List<Callback<float>> downloadProgressCallbacks = new List<Callback<float>>();
35+
static Task downloadModelsTask;
36+
static readonly object lockObject = new object();
3537
static long totalSize;
3638
static long currFileSize;
3739
static long completedSize;
@@ -42,7 +44,16 @@ public static void SetDownloadProgress(float progress)
4244
foreach (Callback<float> downloadProgressCallback in downloadProgressCallbacks) downloadProgressCallback?.Invoke(downloadProgress);
4345
}
4446

45-
public static async Task DownloadModels()
47+
public static Task DownloadModels()
48+
{
49+
lock (lockObject)
50+
{
51+
if (downloadModelsTask == null) downloadModelsTask = DownloadModelsOnce();
52+
}
53+
return downloadModelsTask;
54+
}
55+
56+
public static async Task DownloadModelsOnce()
4657
{
4758
if (Application.platform == RuntimePlatform.Android) await LLMUnitySetup.AndroidExtractFile(LLMUnitySetup.BuildFilename);
4859
if (!File.Exists(LLMUnitySetup.BuildFile)) return;

0 commit comments

Comments
 (0)