Ohhhh @can.l I just received a solution for the "progress-bar" problem we might've had with Gio.Task. The problem was: What if you trigger an expensive operation with Gio.Task and want to monitor progress (like copying 100.000 files). Basically: 1) Start a Task and make sure it has access to a queue/mailbox 2) Add a g_timeout_add callback that regularly checks in the main-thread the mailbox for new messages and trigger updates based on that 3) Let the task send messages to the mailbox 4) The callback notices them, triggers GUI updates based on that 5) You de-register the callback when either a certain type of message is sent or some condition is true. Like if a progress-level now is "1" you know its finished and the callback is unnecessary. Or tasks can send "Finished" Messages or sth