![]() After marking thread as ready to stop, CAS was waiting this for thread to exit out of main execution loop (in _cas_io_queue_thread()). In case of management queue it lead to deadlock because both stoping queue and main execution loop was performed in the same execution context. Since freeing memory is the only operation after stopping thread, it can be moved just after the main thread loop. After this little reordering, synchronising between _cas_stop_thread() and _cas_io_queue_thread() in no longer needed, and no deadlock will occur. This change is needed to put management qeueue from completion context. Without this cachnge, there will be no possiblitiy to stop cache from completion context and to make rollback. Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com> |
||
---|---|---|
.. | ||
cas_cache | ||
cas_disk | ||
include | ||
CAS_VERSION_GEN | ||
config.mk | ||
extra.mk | ||
Makefile |