[Lldb-commits] [PATCH] Reduce number of threads in lldb-mi.

Ilia K ki.stfu at gmail.com
Thu Feb 19 06:56:00 PST 2015


In http://reviews.llvm.org/D7746#126426, @abidh wrote:

> > > After this revision goes in, it will not be possible to give the name of the executable on command line and lldb-mi accepting it. This functionality is already stubbed out in the code by he following #ifdef so we will not lose anything.
>
> > 
>
> > 
>
> > Why? We can use ExecuteCommand instead of InjectCommand in LocalDebugSessionStartupInjectCommands. I have tested it, and it works.
>
>
> You are right. We can keep this functionality. But I dont like code being stubbed out with random #ifdef. If it is needed then it should be enabled all times and tested. Otherwise it should be removed.


We can enable this ability by default. It will not require additional efforts on startup.

> > > For posix system, it is even possible to make lldb-mi a single thread app. But on windows, it is difficult to wait on stdin with timeout like what you can do with select. So next best thing is to use 2 threads instead of 3.

> 

> > 

> 

> > 

> 

> > Can you explain me,  why? I don't mind, I'm just wondering.

> 

> 

> On linux, I have experimented with a single-threaded lldb-mi and it works. The sequence is

> 

> 1. Wait for stdin with a timeout.

> 2. If a command, process it and go to 4.

> 3. If time out, go to 4.

> 4. Process events if any and go to 1.

> 

>   This worked on Linux. But problem is that 'select' call works only with sockets on Windows. I tried other Windows APIs but nothing provides a simple interface as select. So I abandoned the idea of making it single threaded.


A small interval will load CPU. 2 threads is a good solution.


http://reviews.llvm.org/D7746

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the lldb-commits mailing list