On Wed 21 Aug 2013 01:03:37 AM CEST, Alexandr wrote:
good day. i trying to make callback function for
VIR_DOMAIN_EVENT_ID_LIFECYCLE, i have successfully registering callback,
but it never called, i need to know when domain started, stopped or
crashed, i have write following code
static int domain_event_handler(virConnectPtr conn, virDomainPtr dom,
int event, int detail, void * opaque)
{
switch(event)
{
}
return 0;
}
.....
int callback =
virConnectDomainEventRegisterAny(libvirt_connection, NULL,
VIR_DOMAIN_EVENT_ID_LIFECYCLE,
VIR_DOMAIN_EVENT_CALLBACK(domain_event_handler), NULL, NULL);
if(callback == -1)
{
std::cout<<"Error: failed to register domain event handle
callback\n";
return -1;
}
.....
but "domain_event_handler" is never called, what is wrong here ?
Are you running an event loop? You can have a look at our examples [1]
and see what's being done there. Especially note the
virEventRunDefaultImpl() [2] there.
Martin
[1]
http://libvirt.org/git/?p=libvirt.git;a=blob;f=examples/domain-events/eve...
[2]
http://libvirt.org/git/?p=libvirt.git;a=blob;f=examples/domain-events/eve...