HP van Braam
b88a62f805
Fix ResourceLoader deadlocks
...
This fixes several issues:
* There was a bug in the cycle detection. It was possible for the cycle
detection to fail because the current thread isn't in the list. Fix
this by just seeing if any of the next threads were already in the
cycle.
* By way of an optimization the thread_waiting_on bookkeeping was done
under the same thread_load_mutex as the cycle detection. But there is
also an early exit after yields. If we exit through the yield the
thread_waiting_on entry is stale and can cause other threads to fail
to do cycle detection.
* When multiple threads end up finishing a resource simultaneously
anyway, probably through cycle detection, there's a small chance that
the original thread finished more-or-less at the same time if the
original thing blocking load completed. We solve this now by letting
only one of the threads do the initial registration.
2026-06-08 04:57:26 +02:00
..
2026-05-04 22:01:06 +04:00
2025-06-03 00:03:01 -07:00
2026-02-26 15:50:28 -06:00
2025-04-24 20:10:31 -04:00
2026-03-11 06:41:36 +01:00
2026-03-11 06:41:36 +01:00
2026-03-03 15:35:58 +02:00
2026-03-03 15:35:58 +02:00
2026-02-26 15:50:28 -06:00
2026-03-11 06:41:36 +01:00
2026-02-26 18:14:23 -06:00
2025-11-17 20:09:05 +01:00
2025-09-16 00:19:19 +02:00
2025-11-17 20:09:05 +01:00
2025-11-02 12:40:51 -08:00
2025-11-17 20:09:05 +01:00
2026-04-29 18:43:04 +02:00
2026-03-11 18:46:53 +02:00
2026-03-18 10:41:59 +01:00
2026-03-18 10:41:59 +01:00
2026-02-23 14:26:52 +01:00
2026-03-18 10:41:59 +01:00
2026-02-26 15:50:28 -06:00
2026-04-13 12:41:46 +03:00
2026-05-15 23:03:54 -07:00
2026-03-11 06:41:36 +01:00
2026-03-18 10:41:59 +01:00
2026-02-26 15:50:28 -06:00
2026-03-11 06:41:36 +01:00
2026-03-27 07:16:20 -04:00
2026-03-27 07:16:20 -04:00
2026-03-27 07:16:20 -04:00
2026-03-27 07:16:20 -04:00
2026-03-27 11:20:06 -04:00
2026-05-19 23:04:00 -07:00
2026-05-19 23:04:00 -07:00
2026-04-21 15:18:46 +02:00
2026-01-13 18:55:55 +01:00
2026-02-26 15:50:28 -06:00
2026-03-10 17:59:33 +08:00
2026-03-27 07:16:20 -04:00
2026-03-27 07:16:20 -04:00
2026-03-27 07:16:20 -04:00
2026-03-27 07:16:20 -04:00
2026-03-10 17:59:33 +08:00
2025-10-05 17:49:23 +09:00
2026-02-26 15:50:28 -06:00
2025-11-17 20:09:05 +01:00
2026-02-26 15:50:28 -06:00
2025-11-17 20:09:05 +01:00
2026-03-18 20:34:08 +01:00
2026-03-18 20:34:08 +01:00
2026-02-26 15:50:28 -06:00
2025-11-17 20:09:05 +01:00
2026-02-26 15:50:28 -06:00
2025-11-17 20:09:05 +01:00
2026-02-26 15:50:28 -06:00
2026-03-11 06:41:36 +01:00
2026-04-15 13:47:15 -07:00
2026-03-17 20:11:01 +01:00
2026-02-26 15:50:28 -06:00
2026-01-26 15:01:43 -06:00
2025-06-11 18:13:02 +02:00
2025-11-17 20:09:05 +01:00
2026-02-26 18:14:23 -06:00
2025-03-07 17:33:47 -06:00
2026-04-13 12:41:46 +03:00
2025-11-17 20:09:05 +01:00
2026-03-04 00:33:36 +11:00
2026-03-04 00:33:36 +11:00
2026-03-27 07:16:20 -04:00
2026-06-08 04:57:26 +02:00
2026-06-08 04:57:26 +02:00
2026-02-26 15:50:28 -06:00
2026-02-05 19:47:56 -06:00
2026-04-13 18:43:58 +02:00
2026-04-13 18:43:58 +02:00
2026-03-21 11:16:26 -03:00
2026-03-11 06:41:36 +01:00
2024-09-25 09:34:35 -05:00
2026-02-26 15:50:28 -06:00
2025-09-26 05:46:19 +10:00
2026-02-26 15:50:28 -06:00
2026-03-17 20:11:01 +01:00
2026-02-26 15:50:28 -06:00
2026-02-26 18:14:23 -06:00
2025-09-26 05:46:19 +10:00
2026-02-26 18:14:23 -06:00
2026-03-11 06:41:36 +01:00
2026-03-11 06:41:36 +01:00
2025-11-17 20:09:05 +01:00
2026-02-26 18:14:23 -06:00
2025-09-26 05:46:19 +10:00
2026-04-15 13:47:15 -07:00
2026-04-13 12:41:46 +03:00
2026-02-26 15:50:28 -06:00
2026-03-11 06:41:36 +01:00
2025-11-15 10:13:07 +08:00
2025-11-17 20:09:05 +01:00
2026-03-18 20:34:08 +01:00
2026-03-18 20:34:08 +01:00
2026-02-26 15:50:28 -06:00
2025-09-26 05:46:19 +10:00
2026-02-26 15:50:28 -06:00
2026-03-10 17:59:33 +08:00
2025-05-13 01:57:05 +02:00
2026-03-18 10:41:59 +01:00