labath added inline comments.

================
Comment at: lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp:354
+      if (signal != LLDB_INVALID_SIGNAL_NUMBER && signal != action->signal)
+        return Status("NetBSD does not support passing multiple signals 
simultaneously");
 
----------------
mgorny wrote:
> labath wrote:
> > krytarowski wrote:
> > > mgorny wrote:
> > > > labath wrote:
> > > > > Is this "passing multiple signals simultaneously", or "passing 
> > > > > multiple *distinct* signals simultaneously". (E.g,. thread 1 gets a 
> > > > > SIGALRM, thread 2 gets SIGIO, etc.).
> > > > The former. Basically there's one siginfo slot, so you can either put a 
> > > > signal for whole process, or for one LWP.
> > > Once we emit a single signal to all threads, it's still technically a 
> > > single signal that hits the process.
> > Ok, that makes sense. But I don't think that's what the code does right now 
> > (IIUC, this line will only fire if the current signal is different that the 
> > signal sent to the previous thread).
> There's a second `if` on line 400 that verifies the number of threads 
> signaled.
> 
> The idea is that we have either:
> * exactly one thread signaled,
> * all threads signaled with the same signal.
> 
> Here we check for the 'same signal' condition.
Ah, I see. That makes sense.

It might be more readable to move all the checks up front, perhaps into some 
function like `Expected< ptrace_siginfo_t> ComputeSignalInfo(const 
ResumeActionList&)`. Apart from readability, doing this will make sure you 
don't issue ptrace commands before you before realize that  the resume packet 
was bogus (and leave the inferior in a weird state in the process).


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

https://reviews.llvm.org/D64647



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

Reply via email to