<div dir="ltr"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">I did think of one more option to avoid the dup() abort.</span><div style="text-decoration-style:initial;text-decoration-color:initial"><br></div><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">- Open MAX_FDS_OUT to reserve a pool of fds (open /dev/nul or something innocuous)</span><br style="text-decoration-style:initial;text-decoration-color:initial"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">- Whenever the core client needs to dup a caller fd, use dup2/dup3 on an fd in the pool</span><br style="text-decoration-style:initial;text-decoration-color:initial"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">- Whenever the core client is done with the caller fd, use dup2/dup3 to release it and point it back at something innocuous.</span><div style="text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(80,0,80);background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Separately, as my client is a service level nested server, I could effectively configure it with setrlimit, and bump up the pool to the 1000 fds to fill the entire ring buffer. That would work, but may not be a general solution for simpler clients, especially since the default limit is only 1024.</span><div style="text-decoration-style:initial;text-decoration-color:initial"><div><br></div><div>If blocking is out, maybe the only thing I can do is add an option to configure the amount of fd's the core will reserve/enqueue? However, while it isn't a dangerous option, it also wouldn't just necessarily with a default of 28, without the developer knowing what larger value to set.</div><div><br></div><div>(To make it clear, I'm thinking through this final issue with the fd limit as best I can before I go ahead and revise my patch)</div><div><br></div><div>- Lloyd</div></div></div>