Mesa (master): st/wgl: Release stw_framebuffer:: mutex after pbuffer creation.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Oct 13 11:57:20 PDT 2011


Module: Mesa
Branch: master
Commit: 7b09a9428203db5c0c46b9226ba1d5a06f17b2d8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7b09a9428203db5c0c46b9226ba1d5a06f17b2d8

Author: Mathias Froehlich <Mathias.Froehlich at web.de>
Date:   Thu Oct 13 11:32:35 2011 +0200

st/wgl: Release stw_framebuffer::mutex after pbuffer creation.

This change releases the stw_framebuffer::mutex past creation of
the pbuffer stw_framebuffer. Without this change the pbuffers
lock is never released. Since on win32 mutexes are recursive, this
does not hurt as long as all actions on a context are done from
the same thread. But if, for example, context creation happens in
a different thread than usage, every access to the context will
block for ever.

Signed-off-by: José Fonseca <jfonseca at vmware.com>

---

 src/gallium/state_trackers/wgl/stw_ext_pbuffer.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c b/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c
index c7273f2..252d07a 100644
--- a/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c
+++ b/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c
@@ -209,6 +209,8 @@ wglCreatePbufferARB(HDC _hDC,
    fb = stw_framebuffer_create(hDC, iPixelFormat);
    if (!fb) {
       SetLastError(ERROR_NO_SYSTEM_RESOURCES);
+   } else {
+      stw_framebuffer_release(fb);
    }
 
    return (HPBUFFERARB)fb;



More information about the mesa-commit mailing list