One solution proposed on the Neon list is to close the file descriptor used by Neon in a second thread. That should make neon return while blocking on IO via that descriptor. In SyncEvolution, the main thread would have to be the one which does the closing because that needs to integrate with the main event loop. A second thread would be the one which calls neon.