@@ -434,31 +434,33 @@ fn onCancel(_: [*c]c.GCancellable, user_data: ?*anyopaque) callconv(.c) void {
434434 callback ();
435435}
436436
437- pub export fn cancellable_new (
438- on_cancel : ? * fn () void ,
439- ) * c.GCancellable {
440- const cancellable = c .g_cancellable_new ();
441- if (on_cancel ) | callback | {
442- _ = c .g_cancellable_connect (
443- cancellable ,
444- c .G_CALLBACK (onCancel ),
445- @ptrCast (callback ),
446- null ,
447- );
448- }
449- return cancellable ;
437+ pub export fn cancellable_new () ? * c.GCancellable {
438+ return c .g_cancellable_new ();
439+ }
440+
441+ pub export fn cancellable_connect (
442+ cancellable : * c.GCancellable ,
443+ on_cancel : * const fn () callconv (.c ) void ,
444+ ) c.ulong {
445+ return c .g_cancellable_connect (
446+ cancellable ,
447+ c .G_CALLBACK (onCancel ),
448+ @ptrCast (@constCast (on_cancel )),
449+ null ,
450+ );
450451}
451452
452- pub export fn cancellable_cancel (cancellable : * c.GCancellable ) void {
453- c .g_cancellable_cancel (cancellable );
453+ pub export fn cancellable_cancel (fs_cancellable : * c.GCancellable ) void {
454+ c .g_cancellable_cancel (fs_cancellable );
454455}
455456
456- pub export fn cancellable_is_cancelled (cancellable : * c.GCancellable ) bool {
457- return c .g_cancellable_is_cancelled (cancellable ) == 1 ;
457+ pub export fn cancellable_is_cancelled (fs_cancellable : * c.GCancellable ) bool {
458+ return c .g_cancellable_is_cancelled (fs_cancellable ) == 1 ;
458459}
459460
460- pub export fn cancellable_destroy (cancellable : * c.GCancellable ) void {
461- c .g_object_unref (cancellable );
461+ pub export fn cancellable_destroy (fs_cancellable : * c.GCancellable , cancel_callback_handler_id : c.ulong ) void {
462+ c .g_cancellable_disconnect (fs_cancellable , cancel_callback_handler_id );
463+ c .g_object_unref (fs_cancellable );
462464}
463465
464466// -------- ERROR -------- //
0 commit comments