summaryrefslogtreecommitdiff
path: root/patchfiles
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-10-12 01:54:44 +0200
committerRobin Gareus <robin@gareus.org>2015-10-12 02:11:04 +0200
commit27f57cde9ad5782dfb2a16fa0520d67b9e5ed4d4 (patch)
treeb9c0218cf3cff518642f9b0f7e9b39e72c2dc6cb /patchfiles
parent86f8b9e12dcd95ef8ba27279ef72e8fb7b19091d (diff)
fix crashes due to glib ignored EDEADLK.
Taking a readlock after a writelock in the same thread should result in a deadlock, yet pthread on Linux returns EDEADLK and continues. glib-2.42.0 ignores EDEADLK and assumes the lock was taken. Releasing the lock later causes issues: "Calling g_rw_lock_writer_unlock() on a lock that is not held by the current thread leads to undefined behaviour." The issue at hand: AudioStreamView::redisplay_track() -> foreach_region() #<< WriteLock -> add_region_view() ... -> AudioRegionView::create_one_wave() -> RegionView::update_coverage_frames -> Playlist::top_unmuted_region_at() #<< ReadLock All current users of Playlist::foreach_region() are in the GUI and AFAICT read-only (display regions, update visuals)
Diffstat (limited to 'patchfiles')
0 files changed, 0 insertions, 0 deletions