First attempt is having jobs working on pdksh and mksh. Now, if the implementation goes through sigsuspend, pause() never is interrupted. And if not, mksh and pdksh will do it through sigprocmask and calling pause after that, so the case is really the same.
Reproducing, as I showed, it's easy: clone apex, build it following wiki, and build mksh cloning its repo at https://github.com/Harvey-OS/mksh, switching to harvey branch and commenting line 891 add_cppflags -DMKSH_NOPROSPECTOFWORK. Then building it:
ARCH=amd64 HARVEY=<your-path-ro -harvey-tree> APEX=<your-path-to-apex-tree> ./Build.sh
And seeing how it falls into an infinite loop due to both cases of uninterrupted pause() if you just do an ls (doesn't suicide).
First attempt is having jobs working on pdksh and mksh. Now, if the implementation goes through sigsuspend, pause() never is interrupted. And if not, mksh and pdksh will do it through sigprocmask and calling pause after that, so the case is really the same.
Reproducing, as I showed, it's easy: clone apex, build it following wiki, and build mksh cloning its repo at https://github.com/Harvey-OS/mksh, switching to harvey branch and commenting line 891
add_cppflags -DMKSH_NOPROSPECTOFWORK. Then building it:ARCH=amd64 HARVEY=<your-path-ro -harvey-tree> APEX=<your-path-to-apex-tree> ./Build.shAnd seeing how it falls into an infinite loop due to both cases of uninterrupted pause() if you just do an ls (doesn't suicide).