umar456 · GitHub

@umar456

@umar456

FloopCZ

@umar456

pavanky

@umar456

pavanky

pavanky previously approved these changes Apr 13, 2018

Narrows the scope of the memory_mutex locks to just around the
modification and reading of the internal memory data members and
elements. This means that actual allocations happen outside of this
mutex's lock.
This was done because the CPU backend requires that the free operation
performs a sync before the pointer is freed. This caused deadlocks
when the main thread was waiting on the worker thread and the
worker thread called nativeFree. This scenario happens when a buffer
node is only referenced in the worker thread and it is removed.

@umar456

@umar456

@umar456

@umar456

umar456 deleted the sync_without_lock branch

May 13, 2018 09:36

syurkevi pushed a commit to syurkevi/arrayfire that referenced this pull request

Jul 26, 2018
…rrayfire#2124)
Narrows the scope of the memory_mutex locks to just around the
modification and reading of the internal memory data members and
elements. This means that actual allocations happen outside of this
mutex's lock.
This was done because the CPU backend requires that the free operation
performs a sync before the pointer is freed. This caused deadlocks
when the main thread was waiting on the worker thread and the
worker thread called nativeFree. This scenario happens when a buffer
node is only referenced in the worker thread and it is removed.

Read the original on github.com ↗