You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ResourceLoader:
- Fix invalid tokens being returned.
- Remove no longer written `ThreadLoadTask::dependent_path` and the code reading from it.
- Clear deadlock hazard by keeping the mutex unlocked during userland polling.
WorkerThreadPool:
- Include thread call queue override in the thread state reset set, which allows to simplify the code that handled that (imperfectly) in the ResourceLoader.
- Handle the mutex type correctly on entering an allowance zone.
CommandQueueMT:
- Handle the additional possibility of command buffer reallocation that mutex unlock allowance introduces.
ThreadLoadStatus status = THREAD_LOAD_IN_PROGRESS;
558
+
{
559
+
MutexLock thread_load_lock(thread_load_mutex);
564
560
565
-
if (!user_load_tokens.has(p_path)) {
566
-
print_verbose("load_threaded_get_status(): No threaded load for resource path '" + p_path + "' has been initiated or its result has already been collected.");
567
-
return THREAD_LOAD_INVALID_RESOURCE;
568
-
}
561
+
if (!user_load_tokens.has(p_path)) {
562
+
print_verbose("load_threaded_get_status(): No threaded load for resource path '" + p_path + "' has been initiated or its result has already been collected.");
563
+
return THREAD_LOAD_INVALID_RESOURCE;
564
+
}
569
565
570
-
String local_path = _validate_local_path(p_path);
571
-
if (!thread_load_tasks.has(local_path)) {
566
+
String local_path = _validate_local_path(p_path);
567
+
if (!thread_load_tasks.has(local_path)) {
572
568
#ifdef DEV_ENABLED
573
-
CRASH_NOW();
569
+
CRASH_NOW();
574
570
#endif
575
-
// On non-dev, be defensive and at least avoid crashing (at this point at least).
576
-
return THREAD_LOAD_INVALID_RESOURCE;
577
-
}
571
+
// On non-dev, be defensive and at least avoid crashing (at this point at least).
0 commit comments