aardvark-platform / aardvark.rendering

Aardvark.Rendering is a high-performance, dependency-aware rendering engine. It is part of the open-source Aardvark Platform for visual computing, real-time graphics, and visualization.
https://aardvarkians.com/
Other
131 stars 13 forks source link

Deadlocks after fix for missing GeometryPool updates #14

Closed luithefirst closed 7 years ago

luithefirst commented 8 years ago

Review fix that writes immediately -> causes deadlock due to missing release of locks by AdaptiveSystemState

lock writer (fun () -> 
    if writer.OutOfDate then
        writer.Write(range)
)

temporary fix:

lock writer (fun () -> 
    if writer.OutOfDate then
        let oldLocks = AdaptiveSystemState.pushReadLocks()
        writer.Write(range)
        AdaptiveSystemState.popReadLocks oldLocks
)
haraldsteinlechner commented 7 years ago

fixed?

luithefirst commented 7 years ago

fixed

haraldsteinlechner commented 7 years ago

alt text