about summary refs log tree commit diff
path: root/LibMatrix/Helpers
diff options
context:
space:
mode:
Diffstat (limited to 'LibMatrix/Helpers')
-rw-r--r--LibMatrix/Helpers/SyncHelper.cs8
-rw-r--r--LibMatrix/Helpers/SyncStateResolver.cs6
2 files changed, 8 insertions, 6 deletions
diff --git a/LibMatrix/Helpers/SyncHelper.cs b/LibMatrix/Helpers/SyncHelper.cs

index babdd6f..9b1b921 100644 --- a/LibMatrix/Helpers/SyncHelper.cs +++ b/LibMatrix/Helpers/SyncHelper.cs
@@ -149,6 +149,7 @@ public class SyncHelper(AuthenticatedHomeserverGeneric homeserver, ILogger? logg catch (Exception e) { Console.WriteLine(e); logger?.LogError(e, "Failed to sync!\n{}", e.ToString()); + await Task.WhenAll(ExceptionHandlers.Select(x => x.Invoke(e)).ToList()); } return null; @@ -257,8 +258,13 @@ public class SyncHelper(AuthenticatedHomeserverGeneric homeserver, ILogger? logg /// </summary> public List<Func<StateEventResponse, Task>> AccountDataReceivedHandlers { get; } = new(); + /// <summary> + /// Event fired when an exception is thrown + /// </summary> + public List<Func<Exception, Task>> ExceptionHandlers { get; } = new(); + private void Log(string message) { if (logger is null) Console.WriteLine(message); else logger.LogInformation(message); } -} +} \ No newline at end of file diff --git a/LibMatrix/Helpers/SyncStateResolver.cs b/LibMatrix/Helpers/SyncStateResolver.cs
index 35360d2..5d25561 100644 --- a/LibMatrix/Helpers/SyncStateResolver.cs +++ b/LibMatrix/Helpers/SyncStateResolver.cs
@@ -51,7 +51,7 @@ public class SyncStateResolver(AuthenticatedHomeserverGeneric homeserver, ILogge var keys = (await storageProvider.GetAllKeysAsync()).Where(x => !x.StartsWith("old/")).ToFrozenSet(); var count = keys.Count - 1; int total = count; - Console.WriteLine($"Found {count} entries to optimise."); + Console.WriteLine($"Found {count} entries to optimise in {totalSw.Elapsed}."); var merged = await initLoadTask; if (merged is null) return; @@ -110,10 +110,6 @@ public class SyncStateResolver(AuthenticatedHomeserverGeneric homeserver, ILogge #endif } - // var traceString = string.Join("\n", traces.Select(x => $"{x.Key}\t{x.Value.ToJson(indent: false)}")); - // var ms = new MemoryStream(Encoding.UTF8.GetBytes(traceString)); - // await storageProvider.SaveStreamAsync($"traces/{oldPath}", ms); - await storageProvider.SaveObjectAsync("init", merged); await Task.WhenAll(moveTasks);