mgorny marked an inline comment as done.
mgorny added a comment.

In D125575#3586534 <https://reviews.llvm.org/D125575#3586534>, @labath wrote:

> I think this is a pretty good start. The main thing bugging me is the two 
> bool flags on the stop reply packet functions. I wonder if it would be more 
> readable to split this into two functions. Something like:
>
>   SendStopReplyForThread(bool force_synchronous /*seems better than 
> allow_async, but that could just be me*/, bool enqueue /*enqueues just this 
> thread*/);
>   EnqueueStopReplyPackets(NativeThreadProtocol &thread_to_skip);
>
> perhaps?

`force_synchronous` makes sense. I guess moving the loop into another function 
does as well. However, I think the `bool enqueue` change is going to be more 
confusing than helpful (note that the notification is always enqueued through 
`SendNotificationPacketNoLock()` unless `force_synchronous`, so `bool enqueue` 
only applies for that case), and I don't really see how to avoid `bool 
queue_all_threads` other than repeating the calls to 
`EnqueueStopReplyPackets()` all over the place — which ofc is possible but 
seems like a lot of duplication.

The thing is, we generally have three cases to handle:

1. A function that uses asynchronous replies in non-stop mode — i.e. we always 
enqueue, and send async notification if one wasn't sent already.
2. A function that always uses synchronous replies — i.e. we send plain old 
reply and don't queue anything.
3. `?` — which in non-stop mode enqueues for all threads but sends the first 
one synchronous rather than asynchronous.

Perhaps the best approach would be to eliminate `bool enqueue` entirely and 
call `PrepareStopReplyPacketForThread()` from `?` handler directly. I need to 
think about it more.



================
Comment at: lldb/test/API/tools/lldb-server/TestLldbGdbServer.py:1414
+
+    def test_QNonStop(self):
+        self.build()
----------------
labath wrote:
> Could you put these into a new file? TestLldbGdbServer is already one of the 
> longest running tests...
Yes, I agree. `TestNonStop.py` coming once!


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D125575/new/

https://reviews.llvm.org/D125575

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

Reply via email to