X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fresourcethread.C;h=430678cc578c67b3c90527cb68f9822a5da92300;hb=3f6a262cfe390b3f8b275297d64565a5b6272969;hp=853ae0245119c231d41f2976f618b831bc0c926c;hpb=49f85559268fc040fe7ba5611cc0520793cf728b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/resourcethread.C b/cinelerra-5.1/cinelerra/resourcethread.C index 853ae024..430678cc 100644 --- a/cinelerra-5.1/cinelerra/resourcethread.C +++ b/cinelerra-5.1/cinelerra/resourcethread.C @@ -164,7 +164,7 @@ ResourceThread::ResourceThread(MWindow *mwindow, MWindowGUI *gui) temp_picon = 0; temp_picon2 = 0; draw_lock = new Condition(0, "ResourceThread::draw_lock", 0); -// interrupted_lock = new Condition(0, "ResourceThread::interrupted_lock", 0); + source_lock = new Condition(1, "ResourceThread::source_lock", 0); item_lock = new Mutex("ResourceThread::item_lock"); audio_buffer = 0; for(int i = 0; i < MAXCHANNELS; i++) @@ -186,7 +186,7 @@ ResourceThread::~ResourceThread() { stop(); delete draw_lock; -// delete interrupted_lock; + delete source_lock; delete item_lock; delete temp_picon; delete temp_picon2; @@ -298,7 +298,7 @@ void ResourceThread::run() { draw_lock->lock("ResourceThread::run"); - + source_lock->lock("ResourceThread::run"); while(!interrupted) { // Pull off item @@ -329,6 +329,7 @@ void ResourceThread::run() get_audio_source(0); get_video_source(0); mwindow->age_caches(); + source_lock->unlock(); } }