On Tuesday, January 24, 2023 4:26:24 AM CET, Phyllis Smith wrote:
Andrew, I found where the problem was introduced. Dec. 6, 2022 GIT is good. 3c7c8a08800c3e100388996f0e2c2eea9761ebe1 Dec.27, 2022 GIT is bad. 175a7314e8e927128787feeb7ba5f42530f0a319
Please be aware that there is a commit in between also touching the cache on the same place (which in this case does not leak for me, but does cause a very high cpu usage). 938dfbb92e41044bee37394ba72af83c61d7cd87 When removing the 2 EDL-lines, this resolves the problem for me as well. diff --git a/cinelerra-5.1/cinelerra/cache.C b/cinelerra-5.1/cinelerra/cache.C index 9186f1f0..0525e38d 100644 --- a/cinelerra-5.1/cinelerra/cache.C +++ b/cinelerra-5.1/cinelerra/cache.C @@ -123,8 +123,8 @@ File* CICache::check_out(Asset *asset, EDL *edl, int block) } //printf("users: %i \n", users ); - EDL *parent = edl->parent_edl; - if(parent) + // EDL *parent = edl->parent_edl; + // if(parent) remove_user(); total_lock->unlock(); //printf("check out %p %lx %s\n", current, tid, asset->path); And I actually wonder if it was intended as if(!parent) - for me this also does not make sense - but I first need to understand what Andrew was trying to solve. You mentioned EDL undo... diff --git a/cinelerra-5.1/cinelerra/cache.C b/cinelerra-5.1/cinelerra/cache.C index 9186f1f0..35d4cd06 100644 --- a/cinelerra-5.1/cinelerra/cache.C +++ b/cinelerra-5.1/cinelerra/cache.C @@ -124,8 +124,9 @@ File* CICache::check_out(Asset *asset, EDL *edl, int block) //printf("users: %i \n", users ); EDL *parent = edl->parent_edl; - if(parent) - remove_user(); + if(!parent) { + remove_user(); + } total_lock->unlock(); //printf("check out %p %lx %s\n", current, tid, asset->path); return current ? current->file : 0; -- Stefan