In the default main loop, POLLOUT events on unlock fd are not handled, which can cause the program to spin on the CPU as it is woken to handle POLLOUT, does nothing, and calls poll2) again, over and over. Problem was observed with the textsuggest-server program from https://gitlab.com/bharadwaj-raju/TextSuggest which relies on libdbus-c++'s default main loop.
Also add a missing increment of the nfd counter.
Patch attached.