Class ThreadingUtils.TaskCompleter

java.lang.Object
dev.architectury.loom.util.ThreadingUtils.TaskCompleter
Enclosing class:
ThreadingUtils

public static class ThreadingUtils.TaskCompleter extends Object
  • Constructor Details

    • TaskCompleter

      public TaskCompleter()
  • Method Details

    • tolerateFailures

      public ThreadingUtils.TaskCompleter tolerateFailures()
      把本 completer 切换为 best-effort 模式:单个任务失败只被收集,不再让 complete() 上抛.

      适用于「成千上万个互不依赖的条目、丢掉个别条目不影响产物整体有效性」的循环; 必须在 add(UnsafeRunnable) 之前调用。需要保证产物完整性的循环不要打开它。

      Returns:
      本 completer
    • failures

      public List<Throwable> failures()
      返回收集到的失败(best-effort 模式下才有内容).
      Returns:
      失败列表,顺序与完成顺序一致
    • failureCount

      public int failureCount()
      返回失败的条目数量.
      Returns:
      失败数量
    • add

    • onComplete

    • completeToleratingFailures

      public int completeToleratingFailures(String description)
      以 best-effort 语义结束:先 complete(),再把收集到的失败按 warn 级别汇总一次.

      汇总使用默认可见的级别,避免「产物少了一些条目」这种事在默认控制台里完全看不见。 注册在 onComplete(UnsafeConsumer) 上的清理动作失败仍然会上抛:那属于资源释放失败, 会直接影响产物完整性,不能降级。

      Parameters:
      description - 被处理对象的描述(例如「被打上注解的 jar」),用于日志
      Returns:
      收集到的失败数量
    • complete

      public void complete()