Gio.Cancellable.prototype.cancel
function cancel(): void { // Gjs wrapper for g_cancellable_cancel() }
Will set cancellable to cancelled, and will emit the Gio.Cancellable::cancelled signal. (However, see the warning about race conditions in the documentation for that signal if you are planning to connect to it.)
This function is thread-safe. In other words, you can safely call it from a thread other than the one running the operation that was passed the cancellable.
The convention within gio is that cancelling an asynchronous operation causes it to complete asynchronously. That is, if you cancel the operation from the same thread in which it is running, then the operation's Gio.AsyncReadyCallback will not be invoked until the application returns to the main loop.