No, I'm not, I'm calling it sooner:

func libvirt_start() {
        libvirt.EventRegisterDefaultImpl()
        event_listen()
}




S pozdravom / Best regards
Daniel Kucera.

2017-05-17 15:47 GMT+02:00 Daniel P. Berrange <berrange@redhat.com>:
On Wed, May 17, 2017 at 03:41:09PM +0200, Daniel Kučera wrote:
> Hi Daniel,
>
> I tried that but it doesn't work:
>
> func libvirt_close_callback(conn *libvirt.Connect, reason
> libvirt.ConnectCloseReason){
>     log.Printf("close callback: %+v", reason)
> }
>
> func event_listen() {
>     log.Printf("event_listen %s", conf.Libvirt.LocalUrl)
>     hv, err := libvirt.NewConnect(conf.Libvirt.LocalUrl)
>
>     err = hv.RegisterCloseCallback(libvirt_close_callback)
>     if err != nil {
>         log.Printf("unable to register close callback")
>         return
>     }
> ...
>
> The callback fires only when I kill my app,

Looks like you are missing a call to libvirt.EventRegisterDefaultImpl(),
which must be the first you do do before even connecting to libvirt.