On 01/22/2011 04:36 PM, Gerd Lorscheid wrote: > Hello, > > I cannot solve all problems with one small fix.
Probably true, but I do not think that anybody was expecting this. > The location, which I fixed > did overwrite an unsaved game without warning. This is what I prevented and > there is no alternative. Hm. Can you explain why your patch works? The sc_game * operations /should/ operate on a different game than the running game in the running base after you temporarily sc_base switch-ed to the tree base. Right? That is why I think there is a threading problem at hand. I analyzed a bit further. In my scenario I create a new game _after_ the tree base has been opened, but before the tree refresh is completed for the first time. Surprisingly the sc_game operations do not refer to my new game at all. The thread doing the tree refreshing seems to be unaware that I did create this new game. If I create the new game before opening the base-as-tree, the problem does not show... Cheers, Joost. > There may be other locations doing the same. It may > be worth to check every place where the game is changed (to the first of the > filter) without warning. If any feature has a problem with my small fix, its > implementation has to be fixed because then its built on wrong assumptions. > > Gerd > > > > -----Ursprüngliche Nachricht----- > Von: Joost 't Hart [mailto:joost.t.h...@planet.nl] > Gesendet: Samstag, 22. Januar 2011 12:35 > An: Gerd Lorscheid > Cc: 'Scid Users List' > Betreff: Re: [Scid-users] Potential data loss using trees > > Hi, > > I suggest we analyze this issue a bit further... > > On 10/08/2010 06:20 PM, Joost 't Hart wrote: >> Hi! >> >> [Linux, CVS] >> >> 1a) Open a dbase in which you want to add a new game >> 2a) Open-as-tree some big reference database (~4M games, dunno if size >> matters here) >> >> Do NOT wait for (2a) - which is concluded by the complete tree list of >> statistics - to complete >> >> 1b) Start a new game (hit Ctrl-X) >> 2b) Make a few moves on the board >> 3b) Wait for (2a) to complete. >> >> Kaboom! Running game is destroyed, board returns to game#1 of your dbase. >> >> Cheers, >> Joost. > Gerd, your suggestion does not resolve the problem above. > > After tree completion I am still sent back at game#1 of dBase. > > But there /is/ a change: > > When I exit Scid at this point, Scid produces an "unsaved game warning" > and it appears that my new game is not entirely lost (as it was), but > added as a new game to the tree base. > > Hm... > > Cheers, > Joost. > > > On 01/19/2011 09:03 PM, Gerd Lorscheid wrote: >> Hello, >> >> at the end of ::tree::dorefresh you find the following code: >> >> >> # if the Tree base is not the current one, updates the Tree base to the >> first game in filter : that way it is possible to >> # directly generate an opening report for example >> if {$baseNumber != [sc_base current] } { >> set current [sc_base current] >> sc_base switch $baseNumber >> if { [sc_filter first] != 0 } { >> sc_game load [sc_filter first] >> } >> sc_base switch $current >> >> >> Now if you do the following: >> * open two bases with trees >> * create a new game in one base, insert moves but do not save >> * switch to the other base and back. >> Your entered game is lost. >> >> The following replacement should prevent this. >> >> >> # if the Tree base is not the current one, updates the Tree base to the >> first game in filter : that way it is possible to >> # directly generate an opening report for example >> if {$baseNumber != [sc_base current] } { >> set current [sc_base current] >> sc_base switch $baseNumber >> if { [sc_filter first] != 0 } { >> if { [sc_game number] != 0 } { >> if { [sc_game altered] == 0 } { >> sc_game load [sc_filter first] >> } >> } >> } >> sc_base switch $current >> >> >> Somebody should check it and check it in. >> >> Gerd >> >> >> >> > ---------------------------------------------------------------------------- > -- >> Protect Your Site and Customers from Malware Attacks >> Learn about various malware tactics and how to avoid them. Understand >> malware threats, the impact they can have on your business, and how you >> can protect your company and customers by using code signing. >> http://p.sf.net/sfu/oracle-sfdevnl >> _______________________________________________ >> Scid-users mailing list >> Scid-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/scid-users >> > > ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ Scid-users mailing list Scid-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scid-users