>
> 2010/9/15 Robert Norris :
>> I would quite like the only known repeatable crash 
>> https://sourceforge.net/tracker/?func=detail&aid=3009431&group_id=83870&atid=570954
>>  about the map auto download and GPS auto following conflict to be solved 
>> too.
>> I posted a bit about this on this mailing list a while ago.
>
> I only retrieve the comment you made on the ticket. If there is any
> other message about this topic, can you resent or send a URL to the
> archive?

My thoughts at that time, would be that a more involved solution would be 
needed to get the threading to work properly.

However I my efforts to make the DEM loading work in the background (using the 
background thread pool stuff), it also calls update draw had the same crash as 
the maps/GPS conflict.

I realised the gtk_threads_enter/leave solved the issue for my DEM method and 
also should solve the GPS drawing crash. [Since that's how the current map 
drawing works when called from another thread].

NB DEM layer background loading is a 1.0+ change. It's in my local git repo.

>> I believe the best way would be a mutex in the struct _VikViewport which 
>> could then control the access to gdk_draw_pixbuf inside the 
>> vik_viewport_draw_pixbuf function.
>> Maybe I'll do that too....
>
> I spend some time to look at multithread aspect of viking. My limited
> skills (in viking internals and GTK/thread model) make me suspicious
> about many code part.
>
> I understood that Gtk signals are thread-safe as they are "executed"
> in the main thread (the one running mainloop).
> So, I think most of the background.c code can be refactored to use
> signals instead of gtk lock.
> Why? Currently, all downloader threads regularly locks mainthread (and
> other threads) simply to refresh the progress view.
> IMHO, some signals can be much better as the UI aspect will be managed
> by a single thread: the main one. This is mostly possible here because
> information to exchange between downloader and UI is really simple.

I don't know, it mostly works so why bother changing it?

A good reference: 
http://library.gnome.org/devel/gtk-faq/stable/x481.html

ATM downloader threads naturally run out side of the GTK lock, thus 'signals' 
from these threads in glib need to call gdk_threads_enter() before doing gtk 
stuff.

> Looking at the code, I do not understood the meaning of the "trigger"
> concept (between viklayer, vikwindow and vikviewport). Furthermore, I
> have the feeling that it is not really thread-safe concept. But as I
> don't understand, I can't be sure.
>

No idea either - the half draw trigger thing is also mysterious.


PS Has anyone heard from Quy Tonthat, Alex Foobarian or Evan Battaglia / what 
happened to them?


                                          
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Viking-devel mailing list
Viking-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viking-devel
Viking home page: http://viking.sf.net/

Reply via email to