Hi Seth,

That doesn’t work because the lock/unlock calls are in separate routines 
(BeginDrawing() and EndDrawing()).

That’s fundamentally unsafe, so I’m adding lockContext() and unlockContext() 
protected methods to the GAL API and a GAL_CONTEXT_LOCKER friend class that can 
be created on the stack.  BeginDrawing() will ASSERT that the context has 
indeed been locked.

Sound reasonable?

Cheers,
Jeff.

> On 12 Oct 2018, at 01:12, Seth Hillbrand <[email protected]> wrote:
> 
> Hmm... That makes sense.  In the calls, we only unlock for 
> std::runtime_error.  Since you can trigger this, could you add a default 
> catch with an unlock call?  (opengl_gal.cpp:357 and 2009)
> 
> -Seth
> 
> Am Do., 11. Okt. 2018 um 16:51 Uhr schrieb Jeff Young <[email protected] 
> <mailto:[email protected]>>:
> Hi Seth,
> 
> I agree that it would be better to get to the bottom of this.  I just wasn’t 
> having any luck.
> 
> The context locking issue has to do with trying to go to fallback canvas 
> while in the middle of rendering.  But we do that (in both Tom’s and my case) 
> as a result of catching an error from OpenGL.
> 
> So the locking issue isn't specific to Mac, just the error that leads to it 
> (in my case; probably not in Tom’s case).
> 
> Cheers,
> Jeff.
> 
> 
>> On 11 Oct 2018, at 20:59, Seth Hillbrand <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>> 
>> Am Do., 11. Okt. 2018 um 12:20 Uhr schrieb Jeff Young <[email protected] 
>> <mailto:[email protected]>>:
>> I pushed a change that keeps the error from happening for me.  It now makes 
>> sure it updates the GAL settings in the active window first and then any 
>> others.
>> 
>> @Seth, if you want to look into it on your Mac, the change is in 
>> KIWAY::CommonSettingsChanged().
>> 
>> Hi Jeff-
>> 
>> I have concerns about this approach.  Since it seems to work, my guess is 
>> that there is a locking time difference on the Mac that leads to this issue. 
>>  I think that we need to fix the context locking mechanism as there is 
>> clearly a way to lock a context and not unlock it after.  
>> 
>> Do you see the locking issue when running a debug build or only in Release?
>> 
>> -Seth
> 

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to