Changes between Initial Version and Version 1 of Ticket #4019, comment 2


Ignore:
Timestamp:
09/21/19 18:01:37 (5 years ago)
Author:
andrew_b
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #4019, comment 2

    initial v1  
    11Before [37ffc024225fd2ef1016babf3cbbeabce4a32899] we had `mc_global.tty.winch_flag` that was set in `sigwinch_handler()`, than it checked some times (note: checked but no reset) and finally reset in `dialog_change_screen_size()`. 
    22 
    3 Currently we have `tty_got_winch()` function that checks whether SIGWINCH was raised. But this function has side effect: the virtual SIGWINCH flag is reset after read. 'Virtual flag' means the non-emptiness of FIFO. If `tty_got_winch()` is sequentially called several times, only first call can return TRUE (FIFO was not emty at this moment), other calls return FALSE (read from an empty FIFO). Finally, `dialog_change_screen_size()` may not be called in dialog event loop in `frontend_dlg_run()`. Such case we have if SIGWINCH is raised while subshell is active. 
     3Currently we have `tty_got_winch()` function that checks whether SIGWINCH was raised. But this function has side effect: the virtual SIGWINCH flag is reset after read. 'Virtual flag' means the non-emptiness of FIFO. If `tty_got_winch()` is sequentially called several times, only first call can return TRUE (FIFO was not empty at this moment), other calls return FALSE (read from an empty FIFO). Finally, `dialog_change_screen_size()` may not be called in dialog event loop in `frontend_dlg_run()`. Such case we have if SIGWINCH is raised while subshell is active. 
    44 
    55I've tried fix that in