> Just discovered one tiny problem here - need to check 'event' to see > if the POLLHUP or POLLERR flags are set, and unregister the callback. > Otherwise if you kill the server, the client will just spin on POLLHUP > or ERR forever. Something like this ought todo the trick > > if (event & (POLLERR | POLLHUP)) { > virEventRemoveHandle(fd); > return; > } > I've been looking over the rest of your changes. Generally, I agree all these suggestions are good ones...except for the code above With this code in, I run the following test 1. start libvirtd 2. begin to monitor events with event-test 3. virsh create foo.xml At this point, the event-test app encounters a HUP, or ERR, and stops monitoring for events - it will only ever get the "Started" event I handle this in the event-test poll loop via if ( pfd.revents & POLLHUP ) { DEBUG0("Reset by peer"); return -1; } Is it not a reasonable restriction to require the client app to handle a Hangup? -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list