@@ -522,19 +522,17 @@ static bool FBSAddEventDataToOptions(NSMutableDictionary *options,
522522MachProcess::MachProcess ()
523523 : m_pid (0 ), m_cpu_type (0 ), m_child_stdin (-1 ), m_child_stdout (-1 ),
524524 m_child_stderr (-1 ), m_path (), m_args (), m_task (this ),
525- m_flags (eMachProcessFlagsNone), m_stdio_thread (0 ),
526- m_stdio_mutex (PTHREAD_MUTEX_RECURSIVE), m_stdout_data (),
527- m_profile_enabled (false ), m_profile_interval_usec (0 ), m_profile_thread (0 ),
528- m_profile_data_mutex (PTHREAD_MUTEX_RECURSIVE), m_profile_data (),
525+ m_flags (eMachProcessFlagsNone), m_stdio_thread (0 ), m_stdio_mutex (),
526+ m_stdout_data (), m_profile_enabled (false ), m_profile_interval_usec (0 ),
527+ m_profile_thread (0 ), m_profile_data_mutex (), m_profile_data (),
529528 m_profile_events (0 , eMachProcessProfileCancel), m_thread_actions (),
530- m_exception_messages (),
531- m_exception_and_signal_mutex (PTHREAD_MUTEX_RECURSIVE), m_thread_list (),
532- m_activities (), m_state (eStateUnloaded),
533- m_state_mutex (PTHREAD_MUTEX_RECURSIVE), m_events (0 , kAllEventsMask ),
534- m_private_events (0 , kAllEventsMask ), m_breakpoints (), m_watchpoints (),
535- m_name_to_addr_callback (NULL ), m_name_to_addr_baton (NULL ),
536- m_image_infos_callback (NULL ), m_image_infos_baton (NULL ),
537- m_sent_interrupt_signo (0 ), m_auto_resume_signo (0 ), m_did_exec (false ),
529+ m_exception_messages (), m_exception_and_signal_mutex (), m_thread_list (),
530+ m_activities (), m_state (eStateUnloaded), m_state_mutex (),
531+ m_events (0 , kAllEventsMask ), m_private_events (0 , kAllEventsMask ),
532+ m_breakpoints (), m_watchpoints (), m_name_to_addr_callback (NULL ),
533+ m_name_to_addr_baton (NULL ), m_image_infos_callback (NULL ),
534+ m_image_infos_baton (NULL ), m_sent_interrupt_signo (0 ),
535+ m_auto_resume_signo (0 ), m_did_exec (false ),
538536 m_dyld_process_info_create (nullptr ),
539537 m_dyld_process_info_for_each_image (nullptr ),
540538 m_dyld_process_info_release (nullptr ),
@@ -577,7 +575,7 @@ static bool FBSAddEventDataToOptions(NSMutableDictionary *options,
577575
578576nub_state_t MachProcess::GetState () {
579577 // If any other threads access this we will need a mutex for it
580- PTHREAD_MUTEX_LOCKER (locker, m_state_mutex);
578+ std::lock_guard<std::recursive_mutex> guard ( m_state_mutex);
581579 return m_state;
582580}
583581
@@ -1279,7 +1277,7 @@ static bool mach_header_validity_test(uint32_t magic, uint32_t cputype) {
12791277
12801278 // Scope for mutex locker
12811279 {
1282- PTHREAD_MUTEX_LOCKER (locker, m_state_mutex);
1280+ std::lock_guard<std::recursive_mutex> guard ( m_state_mutex);
12831281 const nub_state_t old_state = m_state;
12841282
12851283 if (old_state == eStateExited) {
@@ -1338,7 +1336,7 @@ static bool mach_header_validity_test(uint32_t magic, uint32_t cputype) {
13381336 m_stop_count = 0 ;
13391337 m_thread_list.Clear ();
13401338 {
1341- PTHREAD_MUTEX_LOCKER (locker, m_exception_and_signal_mutex);
1339+ std::lock_guard<std::recursive_mutex> guard ( m_exception_and_signal_mutex);
13421340 m_exception_messages.clear ();
13431341 m_sent_interrupt_signo = 0 ;
13441342 m_auto_resume_signo = 0 ;
@@ -1578,7 +1576,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
15781576bool MachProcess::Interrupt () {
15791577 nub_state_t state = GetState ();
15801578 if (IsRunning (state)) {
1581- PTHREAD_MUTEX_LOCKER (locker, m_exception_and_signal_mutex);
1579+ std::lock_guard<std::recursive_mutex> guard ( m_exception_and_signal_mutex);
15821580 if (m_sent_interrupt_signo == 0 ) {
15831581 m_sent_interrupt_signo = SIGSTOP;
15841582 if (Signal (m_sent_interrupt_signo)) {
@@ -1736,7 +1734,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
17361734 m_thread_actions.Append (thread_action);
17371735 m_thread_actions.SetDefaultThreadActionIfNeeded (eStateRunning, 0 );
17381736
1739- PTHREAD_MUTEX_LOCKER (locker, m_exception_and_signal_mutex);
1737+ std::lock_guard<std::recursive_mutex> guard ( m_exception_and_signal_mutex);
17401738
17411739 ReplyToAllExceptions ();
17421740 }
@@ -1862,7 +1860,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
18621860}
18631861
18641862void MachProcess::ReplyToAllExceptions () {
1865- PTHREAD_MUTEX_LOCKER (locker, m_exception_and_signal_mutex);
1863+ std::lock_guard<std::recursive_mutex> guard ( m_exception_and_signal_mutex);
18661864 if (!m_exception_messages.empty ()) {
18671865 MachException::Message::iterator pos;
18681866 MachException::Message::iterator begin = m_exception_messages.begin ();
@@ -1896,7 +1894,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
18961894 }
18971895}
18981896void MachProcess::PrivateResume () {
1899- PTHREAD_MUTEX_LOCKER (locker, m_exception_and_signal_mutex);
1897+ std::lock_guard<std::recursive_mutex> guard ( m_exception_and_signal_mutex);
19001898
19011899 m_auto_resume_signo = m_sent_interrupt_signo;
19021900 if (m_auto_resume_signo)
@@ -2298,7 +2296,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
22982296// data has already been copied.
22992297void MachProcess::ExceptionMessageReceived (
23002298 const MachException::Message &exceptionMessage) {
2301- PTHREAD_MUTEX_LOCKER (locker, m_exception_and_signal_mutex);
2299+ std::lock_guard<std::recursive_mutex> guard ( m_exception_and_signal_mutex);
23022300
23032301 if (m_exception_messages.empty ())
23042302 m_task.Suspend ();
@@ -2312,7 +2310,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
23122310
23132311task_t MachProcess::ExceptionMessageBundleComplete () {
23142312 // We have a complete bundle of exceptions for our child process.
2315- PTHREAD_MUTEX_LOCKER (locker, m_exception_and_signal_mutex);
2313+ std::lock_guard<std::recursive_mutex> guard ( m_exception_and_signal_mutex);
23162314 DNBLogThreadedIf (LOG_EXCEPTIONS, " %s: %llu exception messages." ,
23172315 __PRETTY_FUNCTION__, (uint64_t )m_exception_messages.size ());
23182316 bool auto_resume = false ;
@@ -2495,7 +2493,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
24952493void MachProcess::AppendSTDOUT (char *s, size_t len) {
24962494 DNBLogThreadedIf (LOG_PROCESS, " MachProcess::%s (<%llu> %s) ..." , __FUNCTION__,
24972495 (uint64_t )len, s);
2498- PTHREAD_MUTEX_LOCKER (locker, m_stdio_mutex);
2496+ std::lock_guard<std::recursive_mutex> guard ( m_stdio_mutex);
24992497 m_stdout_data.append (s, len);
25002498 m_events.SetEvents (eEventStdioAvailable);
25012499
@@ -2506,7 +2504,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
25062504size_t MachProcess::GetAvailableSTDOUT (char *buf, size_t buf_size) {
25072505 DNBLogThreadedIf (LOG_PROCESS, " MachProcess::%s (&%p[%llu]) ..." , __FUNCTION__,
25082506 static_cast <void *>(buf), (uint64_t )buf_size);
2509- PTHREAD_MUTEX_LOCKER (locker, m_stdio_mutex);
2507+ std::lock_guard<std::recursive_mutex> guard ( m_stdio_mutex);
25102508 size_t bytes_available = m_stdout_data.size ();
25112509 if (bytes_available > 0 ) {
25122510 if (bytes_available > buf_size) {
@@ -2733,7 +2731,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
27332731
27342732void MachProcess::SignalAsyncProfileData (const char *info) {
27352733 DNBLogThreadedIf (LOG_PROCESS, " MachProcess::%s (%s) ..." , __FUNCTION__, info);
2736- PTHREAD_MUTEX_LOCKER (locker, m_profile_data_mutex);
2734+ std::lock_guard<std::recursive_mutex> guard ( m_profile_data_mutex);
27372735 m_profile_data.push_back (info);
27382736 m_events.SetEvents (eEventProfileDataAvailable);
27392737
@@ -2744,7 +2742,7 @@ static uint64_t bits(uint64_t value, uint32_t msbit, uint32_t lsbit) {
27442742size_t MachProcess::GetAsyncProfileData (char *buf, size_t buf_size) {
27452743 DNBLogThreadedIf (LOG_PROCESS, " MachProcess::%s (&%p[%llu]) ..." , __FUNCTION__,
27462744 static_cast <void *>(buf), (uint64_t )buf_size);
2747- PTHREAD_MUTEX_LOCKER (locker, m_profile_data_mutex);
2745+ std::lock_guard<std::recursive_mutex> guard ( m_profile_data_mutex);
27482746 if (m_profile_data.empty ())
27492747 return 0 ;
27502748
0 commit comments