X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=generator%2Fgenerator_perl.ml;h=f42bc8798dcd3b36e067765454a5bc6e34ba3aeb;hb=d28d76b4fba3afe18757ab848346e8123a8bcae1;hp=c8324693d3d2d9ce01401f63619a84b55f0ae737;hpb=883390fb2e8cdaf81223eb41c87f245571e3d63d;p=libguestfs.git diff --git a/generator/generator_perl.ml b/generator/generator_perl.ml index c832469..f42bc87 100644 --- a/generator/generator_perl.ml +++ b/generator/generator_perl.ml @@ -256,11 +256,15 @@ delete_event_callback (g, event_handle) int event_handle; PREINIT: char key[64]; + SV *cb; CODE: snprintf (key, sizeof key, \"_perl_event_%%d\", event_handle); - guestfs_set_private (g, key, NULL); - - guestfs_delete_event_callback (g, event_handle); + cb = guestfs_get_private (g, key); + if (cb) { + SvREFCNT_dec (cb); + guestfs_set_private (g, key, NULL); + guestfs_delete_event_callback (g, event_handle); + } SV * last_errno (g) @@ -273,6 +277,12 @@ PREINIT: OUTPUT: RETVAL +void +user_cancel (g) + guestfs_h *g; + PPCODE: + guestfs_user_cancel (g); + "; List.iter ( @@ -772,6 +782,11 @@ errnos: # mkdir failed because the directory exists already. } +=item $h->user_cancel (); + +Cancel current transfer. This is safe to call from Perl signal +handlers and threads. + =cut ";