llvm-project
5be3fdbc - [lldb] Use std::atomic<bool> for Editline's pending-resize flag (#209619)

Commit
22 hours ago
[lldb] Use std::atomic<bool> for Editline's pending-resize flag (#209619) TerminalSizeChanged() used a volatile std::sig_atomic_t to record that a resize is pending. That type was chosen because the SIGWINCH handler ran in async-signal context and could only touch an sig_atomic_t. Signals are now handled on a dedicated thread, so the flag is written from a normal thread and std::atomic<bool> is sufficient to handle that. el_resize() still runs on the thread that owns libedit, in its read loop. I discovered that it is not safe to run elsewhere, because it resets libedit's display model without redrawing. Applying it off that thread seems to throw it off and makes it duplicate the prompt.
Author
Parents
Loading