JDevlieghere added inline comments.

================
Comment at: lldb/tools/driver/Driver.cpp:673-674
+static void sigtstp_handler(int signo) {
   if (g_driver != nullptr)
     g_driver->GetDebugger().SaveInputTerminalState();
 
----------------
labath wrote:
> JDevlieghere wrote:
> > I see an opportunity for a little RAII helper.
> What kind of a helper did you have in mind? Practically the entire function 
> consists of setup and teardown in preparation for the `raise(signo)` call. If 
> I wanted to be fancy I could put all of that in a helper, but I don't think 
> that would make it cleaner. Plus, we also need to be careful about the 
> functions we call from a signal handler, and I really don't know whether e.g. 
> `llvm::make_scope_exit` is guaranteed to not allocate (heap) memory.
I was only referring to the Save/RestoreInputTerminalState() part of this 
function. Something like:

```
class TerminalStateRAII() {
public:
  TerminalStateRAII(Driver* driver) : driver(m_driver) {
    if (m_driver)
      m_driver->GetDebugger().SaveInputTerminalState();
  }

  ~SignalHelper() {
    if (m_driver)
      m_driver->GetDebugger().SaveInputTerminalState();
  }

private:
  Driver* m_driver;
};
```

Obviously, this isn't at all important, just something that came to mind.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D120320

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

Reply via email to