On some environment (like a single language VM creating many threads sharing the single process), it uses many file descriptors. When the process does mistake not specifying close-on-exec flag for those descriptors, gpg invoked by such a process won't work, because of the limitation of fd_set for select.
To address this issue, eventually, support of poll/ppoll in NPTH will be required.
We have an experimental patch in D540: Adding poll/ppoll to NPTH.