Bug 148957

Summary: Static variables in GraphicsContext3DOpenGLCommon should be avoided because of the race condition
Product: WebKit Reporter: Jinyoung Hur <hur.ims>
Component: Layout and RenderingAssignee: Jinyoung Hur <hur.ims>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, dino, kondapallykalyan, noam, roger_fong
Priority: P2    
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Jinyoung Hur
Reported 2015-09-08 08:40:04 PDT
There is no guarantee that only one thread calls GraphicsContext3D::compileShader() at a time so it would be better to use a thread local storage variable rather than use a static variable. In my case, the race condition is occurred when multiple instances of TextureMapperShaderProgram are created on each other thread and the constructors of TextureMapperShaderProgram call GraphicsContext3D::compileShader() simultaneously.
Attachments
Patch (4.34 KB, patch)
2015-09-08 08:47 PDT, Jinyoung Hur
no flags
Jinyoung Hur
Comment 1 2015-09-08 08:47:42 PDT
WebKit Commit Bot
Comment 2 2015-09-10 11:48:07 PDT
Comment on attachment 260761 [details] Patch Clearing flags on attachment: 260761 Committed r189580: <http://trac.webkit.org/changeset/189580>
WebKit Commit Bot
Comment 3 2015-09-10 11:48:12 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.