labath added a comment.

In D132578#3751968 <https://reviews.llvm.org/D132578#3751968>, @mgorny wrote:

> Well, back when working on the async thread, you've indicated that it's a bad 
> idea to read from one thread while writing from another, so I've basically 
> focused on getting to the point when all reads and writes are guaranteed to 
> happen from a single thread.

Ok, I think I know what you mean. That comment was made in the context of the 
GDB communication class, whose functionality is more complex (sending a packet 
involves both reading and writing) than the plain `Communication`.  Sending 
packets from multiple threads is more complex that a hypothetical simple setup 
where you have a single thread just doing reading, and another thread just for 
writing...

In D132578#3751969 <https://reviews.llvm.org/D132578#3751969>, @mgorny wrote:

> (with the final goal of using `StartReadThread()` inside gdb-remote comms to 
> take care of reading the data for concurrent process plugin instances)

... but we don't have such a case, so doing this might be fine. I sort of 
understand the direction you're going with this, but I can't really visualize 
the final state. Could you give a short summary of the desired final 
architecture.

FWIW, my idea was to use the gdb-remote "async" thread for this centralized 
sort of reading(sending)/writing(receiving). The async thread serves a similar 
purpose to the communication read thread, but is completely unrelated to it. I 
thought that would be the easiest to implement, since we already kind of have a 
synchronization mechanism (the "continue" lock) between these thread and other 
threads. However, I don't have a complete picture of how would this work (I'd 
guess we have a single "async" thread for all of the processes, and it would 
somehow synchronize/arbitrate between them), so I am open to other ideas as 
well.


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

https://reviews.llvm.org/D132578

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

Reply via email to