diff options
author | S. Hameed <shameed@jp.adit-jv.com> | 2017-12-01 11:43:16 +0900 |
---|---|---|
committer | Saya Sugiura <39760799+ssugiura@users.noreply.github.com> | 2019-05-24 16:59:13 +0900 |
commit | a889c8b26aa40d792a75adc71da9b13fd5787ba9 (patch) | |
tree | a35ee0d908bef7d898d72d8ee80e9281b9c7706a /systemd/CMakeLists.txt | |
parent | 2ccad35344f0d5824215b84b080443532caffe80 (diff) | |
download | DLT-daemon-a889c8b26aa40d792a75adc71da9b13fd5787ba9.tar.gz |
lib: unlock buffer on termination
Sometimes it happens that internal threads present
in DLT library are cancelled with one of the task
still holding the mutex, then the main task gets locked forever.
The following changes have been made:
- Cleanup on thread cancellation with pthread_cleanup_push() is
introduced
- Locking on the message queue lock and subsequent signaling in
dlt_stop_threads is only done if the segmented thread was created.
- It is unnecessary to have a robust mutex for the message queue.
Replace it with a normal mutex and remove EOWNERDEAD logic. Add a
pthread_cancel handler to the segmented thread that might hold the
message queue mutex.
- Message queue mutex is statically initialized
Signed-off-by: S. Hameed <shameed@jp.adit-jv.com>
Signed-off-by: Jeevan Ramakant Nagvekar <jeevan.nagvekar1@wipro.com>
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
Diffstat (limited to 'systemd/CMakeLists.txt')
0 files changed, 0 insertions, 0 deletions