You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[SYCL] Fix deadlock in ProgramManager class (#2131)
This patch fixes deadlock in sycl::detail::ProgramManager class caused
by data race in usage of KernelProgramCache::MBuildCV condition
variable.
Even if BuildResult->State.load() is atomic, it must be modified under
the mutex. The deadlock happends in situation when notification
notify_all() is sent while MBuildCV is in the wait expression BUT not
in the waiting state. The result is - the notification is lost. After
that the thread goes to the waiting state and sleeps forever.
BuildResult is protected by mutex now, so the notification will be
sent only when the other thread in the waiting state.
Signed-off-by: Dmitry Vodopyanov <[email protected]>
Co-authored-by: Sergey Kanaev <[email protected]>
0 commit comments