This is what the child ksh M-x shell process is doing when I resize the window. As you can see the write of "> " near the end. Hopefully some folks have more insight into this.
select(1, [0], NULL, NULL, NULL) = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} ---
rt_sigaction(SIGWINCH, {sa_handler=0x55e35c5a23b0, sa_mask=[], sa_flags=SA_RESTORER|SA_INTERRUPT, sa_restorer=0x7ffb3cb91060}, {sa_handler=0x55e35c5a23b0, sa_mask=[], sa_flags=SA_RESTORER|SA_INTERRUPT, sa_restorer=0x7ffb3cb91060}, 8) = 0
ioctl(2, TIOCGWINSZ, {ws_row=9, ws_col=102, ws_xpixel=0, ws_ypixel=0}) = 0
rt_sigprocmask(SIG_UNBLOCK, [WINCH], NULL, 8) = 0
rt_sigreturn({mask=[]}) = -1 EINTR (Interrupted system call)
ioctl(2, TIOCGWINSZ, {ws_row=9, ws_col=102, ws_xpixel=0, ws_ypixel=0}) = 0
poll([], 0, 50) = 0 (Timeout)
ioctl(2, TIOCGWINSZ, {ws_row=9, ws_col=102, ws_xpixel=0, ws_ypixel=0}) = 0
lseek(3, 0, SEEK_END) = 2
lseek(3, 0, SEEK_CUR) = 2
lseek(3, 2, SEEK_SET) = 2
read(3, "", 65536) = 0
lseek(3, 2, SEEK_SET) = 2
read(3, "", 65536) = 0
select(1, [0], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0 (Timeout)
write(2, "> ", 3) = 3
select(1, [0], NULL, NULL, NULL