Does std.net.curl: download have support for callbacks?
Cogitri
oss at cogitri.dev
Thu Jun 11 08:13:19 UTC 2020
On Thursday, 11 June 2020 at 06:13:59 UTC, adnan338 wrote:
> On Thursday, 11 June 2020 at 06:05:09 UTC, adnan338 wrote:
>> I would like to set a callback for the `download()` function
>> but I do not seem to find a way to add a callback to the
>> procedure.
>>
>> [...]
>
> I have also been told that Gtk is not thread safe. What does
> this mean and does it effect me on this scenario?
That means that you must not access GTK objects from anything but
your mainthread, so e.g. spawning a new thread to listen for
progress on the curl request and updating the thread directly
from there wont work. You could use glib.Idle or glib.Timeout to
listen for updates in your mainthread without blocking it.
In case you need to do something heavier (e.g. decode a big
response) you probably want to do that in a separate thread to
not block your mainthread (and as such make your UI unresponsive
while the decoding blocks the thread). In that case I'd recommend
using message passing, meaning that you spawn a separate thread,
do your decoding there and then send the result back to your
mainthread and manipulate the GTK widget there.
More information about the Digitalmars-d-learn
mailing list