Execute a callback, blocking until it is done
The callback will be executed in the calling thread. Note that the calling thread will block until the callback can be processed, so if this method is called from the default thread it will block the main loop and likely lead to a deadlock. When executing a callback from the default thread you should use execute_async or execute_background.
the callback to execute
optional cancellable for aborting the operation