On 26/11/14 01:43 PM, DRC wrote:
> On 11/26/14 9:20 AM, Nathan Kidd wrote:
>> Consider this sequence:
>>
>> thread1: xcb_get_extension_data(conn1)
>>    get_already_faked(conn1) != true
>>      set_already_faked(conn1, true)
>>      run on faked connection
>>
>> thread2: xcb_get_extension_data(conn1)
>>    get_already_faked(conn1) == true
>>      run on original connection
>>
>> thread1:
>>    set_already_faked(conn1, false)
>>    return
> 
> I see your point.  set_already_faked() would only be called from within 
> Xlib and GLX functions, so your example above is partially bogus, but 
> you could have something like this:

Ok, xcb_get_extension_data wasn't a good choice, but replace it with
xcb_glx_get_server_string() (which will eventually call
xcb_get_extension_data via xcb_send_request); the same issue could
occur.  Eventually any xcb API that fakes the connection will also need
set_already_faked().

Incidentally, my current code works around the whole
xcb_get_extension_data issue by simply not faking it at all.  Exceed
onDemand and Exceed Turbo VA X  always support GLX (unless you
explicitly turn it off), so there's no pressing need to pretend it exists.

-Nathan

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
VirtualGL-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/virtualgl-devel

Reply via email to