Update gui during libcurl?

BlitzMax Modules Forums/Brucey's Modules/Update gui during libcurl?

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

I would say some kind of "system" refresh is what you need there - SystemWait() ?

However, TEasyCurl is synchronous, so you are going to have issues like this. How's about using the A-synchronous TCurlMulti instead? Rather than waiting until the transfer is finished, it kicks *them* off in the background and relies on you to keep an eye on how they are doing, rather than the other way around.

From the ex_05 example, the main loop looks a bit like this :
Local status:Int = multi.multiPerform(running)

While status = CURLM_CALL_MULTI_PERFORM 
	status = multi.multiPerform(running)
Wend

While running And status = CURLM_OK
	' wait for network 
	If multi.multiSelect() <> -1 Then
		' pull in any new data, or at least handle timeouts 
		status = multi.multiPerform(running)
		While status = CURLM_CALL_MULTI_PERFORM 
			status = multi.multiPerform(running)
		Wend
	End If
Wend

You could stick this on a quick-firing timer, which would mean that your "main" event loop could happily update the UI like normal.