From: Thomas Hellström Date: Fri, 1 Dec 2006 12:41:43 +0000 (+0000) Subject: Fix an infinite loop error that may occur when many contexts are bound X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=682393944c72ecfabe8df674af0b48975e90b98c;p=mesa.git Fix an infinite loop error that may occur when many contexts are bound to the same drawable in a multithreading environment. This one slipped out of the texman merge. --- diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index e7f07569f4e..ba251a81430 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -411,13 +411,18 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp) if (!pcp || ((pdp != pcp->driDrawablePriv) && (pdp != pcp->driReadablePriv))) { - /* ERROR!!! */ - return; + /* ERROR!!! + * ...but we must ignore it. There can be many contexts bound to a + * drawable. + */ } psp = pdp->driScreenPriv; if (!psp) { /* ERROR!!! */ + _mesa_problem("Warning! Possible infinite loop due to bug " + "in file %s, line %d\n", + __FILE__, __LINE__); return; }