http://bugs.cinelerra.org/show_bug.cgi?id=210
------- Additional Comments From [EMAIL PROTECTED] 2006-06-05 14:52 ------- I've acutally lately done investigation of why cinelerra locks up so often. There cannot be no simple fix. When each window runs its own thread and sometimes needs to call "procedure" from other window it has to "lock the window" (actually all its data structures) first in order not to cause data corruption. And since all the threads are running concurently, it is not a rare thing that we get a deadlock, since they want to lock eachother's data in order to do something. The most trivial example is a big paste-job in main window (a lot of edits, and just press "v" multiple times, so cinelerra will work for a few seconds) and trying to drag a clip from asset window to main window. The moment clip comes to main window, main window and asset window both lock up. There is only one proper fix for this: instead of calling into other windows/threads, we have to have a message passing/event triggering mechanism which means that the threads process requests from other threads passively, when they are free. However such mechanism is non-trivial to implement, since it also has to keep the pointer reference counters in order to free resources when all events are delievered. ... it is non-trivial, but not really too much work not to be done, this message passing is also a prerequisite for porting to any other graphical library. Since when you have a message passing in place, you can change things window by window ... probably starting with resources window... ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. _______________________________________________ Cinelerra mailing list [email protected] https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra
