On 5/26/2019 11:10 AM, Ken Brown wrote: > fhandler_pipe is currently the only class derived from > fhandler_base_overlapped. This patch series rewrites parts of > fhandler_pipe so that it can be derived from fhandler_base instead. > We can then simplify the code by removing fhandler_base_overlapped. > > In particular, this gets rid of the peculiar situation in which a > non-blocking write can return with I/O pending, leading to the > ugliness in fhandler_base_overlapped::close. > > I've marked these patches as drafts because I've undoubtedly > overlooked some things. Also, I haven't systematically done any > regression tests. I have, however, run all the sample pipe programs > in Kerrisk's book "The Linux Programming Interface: Linux and UNIX > System Programming Handbook". I've also run emacs-X11, gdb, git, > make, etc., so far without problems.
This isn't ready for prime time yet. I've run into occasional errors like this when doing a parallel build of emacs (-j13 in this case): make: INTERNAL: Exiting with 14 jobserver tokens available; should be 13! This would seem to indicate problems with make's jobserver pipe. I've already found two bugs in patch 4, but I'm still seeing this error once in a while. I'll send a v2 if/when I find the problem. Ken