Add "vAttachOrWait" to debugserver, so you can implement "attach to the process if it exists OR wait for it" without race conditions. Use that in lldb.
llvm-svn: 160578
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
index a283389..eee3aa5 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
@@ -221,6 +221,9 @@
bool
GetVContSupported (char flavor);
+ bool
+ GetVAttachOrWaitSupported ();
+
void
ResetDiscoverableSettings();
@@ -365,7 +368,8 @@
lldb_private::LazyBool m_supports_memory_region_info;
lldb_private::LazyBool m_supports_watchpoint_support_info;
lldb_private::LazyBool m_watchpoints_trigger_after_instruction;
-
+ lldb_private::LazyBool m_attach_or_wait_reply;
+
bool
m_supports_qProcessInfoPID:1,
m_supports_qfProcessInfo:1,