Re: [Lldb-commits] [PATCH] D14083: Fix race condition in process resume

2015-10-27 Thread Pavel Labath via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL251399: Fix race condition in process resume (authored by 
labath).

Changed prior to commit:
  http://reviews.llvm.org/D14083?vs=38429=38515#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D14083

Files:
  lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
  lldb/trunk/test/functionalities/attach_resume/TestAttachResume.py

Index: 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
===
--- 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+++ 
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
@@ -1049,7 +1049,6 @@
 Mutex::Locker locker(m_sequence_mutex);
 StateType state = eStateRunning;
 
-BroadcastEvent(eBroadcastBitRunPacketSent, NULL);
 m_public_is_running.SetValue (true, eBroadcastNever);
 // Set the starting continue packet into "continue_packet". This packet
 // may change if we are interrupted and we continue after an async 
packet...
@@ -1059,6 +1058,7 @@
 const auto sigint_signo = 
process->GetUnixSignals()->GetSignalNumberFromName("SIGINT");
 
 bool got_async_packet = false;
+bool broadcast_sent = false;
 
 while (state == eStateRunning)
 {
@@ -1071,6 +1071,12 @@
 else
 m_interrupt_sent = false;
 
+if (! broadcast_sent)
+{
+BroadcastEvent(eBroadcastBitRunPacketSent, NULL);
+broadcast_sent = true;
+}
+
 m_private_is_running.SetValue (true, eBroadcastAlways);
 }
 
Index: lldb/trunk/test/functionalities/attach_resume/TestAttachResume.py
===
--- lldb/trunk/test/functionalities/attach_resume/TestAttachResume.py
+++ lldb/trunk/test/functionalities/attach_resume/TestAttachResume.py
@@ -20,7 +20,6 @@
 @skipIfRemote
 @expectedFailureFreeBSD('llvm.org/pr19310')
 @expectedFailureWindows("llvm.org/pr24778")
-@expectedFlakeyLinux('llvm.org/pr19310')
 def test_attach_continue_interrupt_detach(self):
 """Test attach/continue/interrupt/detach"""
 self.build()


Index: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
===
--- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
@@ -1049,7 +1049,6 @@
 Mutex::Locker locker(m_sequence_mutex);
 StateType state = eStateRunning;
 
-BroadcastEvent(eBroadcastBitRunPacketSent, NULL);
 m_public_is_running.SetValue (true, eBroadcastNever);
 // Set the starting continue packet into "continue_packet". This packet
 // may change if we are interrupted and we continue after an async packet...
@@ -1059,6 +1058,7 @@
 const auto sigint_signo = process->GetUnixSignals()->GetSignalNumberFromName("SIGINT");
 
 bool got_async_packet = false;
+bool broadcast_sent = false;
 
 while (state == eStateRunning)
 {
@@ -1071,6 +1071,12 @@
 else
 m_interrupt_sent = false;
 
+if (! broadcast_sent)
+{
+BroadcastEvent(eBroadcastBitRunPacketSent, NULL);
+broadcast_sent = true;
+}
+
 m_private_is_running.SetValue (true, eBroadcastAlways);
 }
 
Index: lldb/trunk/test/functionalities/attach_resume/TestAttachResume.py
===
--- lldb/trunk/test/functionalities/attach_resume/TestAttachResume.py
+++ lldb/trunk/test/functionalities/attach_resume/TestAttachResume.py
@@ -20,7 +20,6 @@
 @skipIfRemote
 @expectedFailureFreeBSD('llvm.org/pr19310')
 @expectedFailureWindows("llvm.org/pr24778")
-@expectedFlakeyLinux('llvm.org/pr19310')
 def test_attach_continue_interrupt_detach(self):
 """Test attach/continue/interrupt/detach"""
 self.build()
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


Re: [Lldb-commits] [PATCH] D14083: Fix race condition in process resume

2015-10-26 Thread Greg Clayton via lldb-commits
clayborg accepted this revision.
clayborg added a comment.
This revision is now accepted and ready to land.

Looks good as long as we always want to send the broadcast even if the continue 
packet fails to send.



Comment at: 
source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp:1074-1079
@@ -1073,2 +1073,8 @@
 
+if (! broadcast_sent)
+{
+BroadcastEvent(eBroadcastBitRunPacketSent, NULL);
+broadcast_sent = true;
+}
+
 m_private_is_running.SetValue (true, eBroadcastAlways);

Do we want this to happen even if we fail to send the packet? Should this  code 
be in the else clause above?


http://reviews.llvm.org/D14083



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits