I use process shared pthread_mutex_t on shared memory. I wonder what if a process lock the mutex and somehow exit, what will happen? As my experiment shows, deadlock happens, but this is a bad news. So is there a way to prevent this? Should not the mutex automatically unlocked when process exit?
pthread process shared mutex deadlock
893 Views Asked by Hoping White At
1
There are 1 best solutions below
Related Questions in PTHREADS
- Multithreaded program not producing desired output
- Blocking in pthread_join()
- Unix c program to calculate pi using threads
- How to process A direct send message to a thread of process B?
- PThread robust mutex not working
- How do I install pthreads on Debian?
- How to make a robust mutex on AIx [7.1]
- Two-Lock Concurrent Queue Algorithm implementation issue
- Parallel QuickSort C implementation
- How to control the thread of child process
- pthread process shared mutex deadlock
- pthreads SIGEV_THREAD and async-safe function calls
- Cannot assign value to array using PHP pthreads
- Android NDK and pthread
- Pthread join segmentation fault
Related Questions in MUTEX
- Why two threads accessing one resource crashes one thread?
- std::mutex::lock fails on Windows, error code 3
- Usage of C++11 std::unique_lock<std::mutex> lk(myMutex); not really clear
- How to make a robust mutex on AIx [7.1]
- pthread process shared mutex deadlock
- C/C++ arrays with threads - do I need to use mutexes or locks?
- Shared mutex in C error in Init
- Can I use WAL mode in SQLite3 if I use an additional mutex for multiple writers?
- Programmatically close Windows console application c++
- Simple thread/mutex test application is crashing
- Pi calculator with mutex Synchronization
- Android global mutex?
- Thread concurrency in linux
- C++ mutex locking error
- Acquiring Parent Mutex from Child Object
Related Questions in DEADLOCK
- Why two threads accessing one resource crashes one thread?
- pthread process shared mutex deadlock
- Deadlock when accessing StackExchange.Redis
- Mysql Innodb deadlock problems on REPLACE INTO
- deadlock analize with SQL Server Profiler - IX Lock while executing select statements
- how to resolve deadlock causes by the synchronized method
- Deadlock when calling dispatch_sync() even though it's on another queue
- deadlock using Semaphore
- Deadlocked in w3wp for a WCF website. Unable to find source of Issue
- DB2 on delete trigger causing deadlock
- C# Deadlock Calling Locked Methods
- Best way to deal with deadlock in SqlServer?
- What is deadlock avoidance and what are some examples?
- How to Avoid update deadlock
- what is effect of deadlock on other processes which are not involve in deadlock?
Related Questions in MULTIPROCESS
- pthread process shared mutex deadlock
- Python: Threading inside of a Multiprocess?
- multiprocess sub-function does not return any results
- Making two python programs communicate
- web.py is blocked when using multiprocess-lib
- How to use multiprocess with Tkinter in Raspberry Pi Python
- Multiprocess sqlite INSERT: "database is locked"
- Reactive event loop in Python
- Writing a Shared Queue for a multi-process c/c++ program
- Mutiproccess IO is faster than Multithreaded IO
- Selenium Multiprocessing Help in Python 3.4
- How to make shell continually ask for input after execv in C++
- boost::asio server multi-process
- Python multiprocess Process never terminates
- How to choose between multiprocessing and multitasking in python for file process?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
No, the mutex shouldn't be automatically unlocked, because the shared data protected by the mutex may be in an inconsistent state.
If you want to handle this situation, you need to use "robust mutexes". To create a robust mutex, set the mutex robustness property to
PTHREAD_MUTEX_ROBUSTby usingpthread_mutexattr_setrobust()on apthread_mutexattr_tobject that is used to initialise the mutex.If a thread or process exits while holding a robust mutex, the next call to
pthread_mutex_lock()on that mutex will return theEOWNERDEADerror. If this error is returned, your code must carefully check all the shared state protected by the mutex and fix any inconsistencies. It can then mark the state as consistent by callingpthread_mutex_consistent()on the mutex, and then continue its execution as normal.