This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch devs/devilhorns/apos
in repository efl.

View the commit online.

commit bcbf37d9854f0fa7e6c8f5f164f7322712da843e
Author: Christopher Michael <devilho...@comcast.net>
AuthorDate: Sat Dec 3 08:54:42 2022 -0500

    ecore_drm2: Cleanup explicit thread handling
    
    There were cases where the thread queue was not being created, and
    cases where the thread queue was not being cleaned up properly.
---
 src/lib/ecore_drm2/ecore_drm2_connectors.c |  9 +++++++--
 src/lib/ecore_drm2/ecore_drm2_crtcs.c      |  9 +++++++--
 src/lib/ecore_drm2/ecore_drm2_displays.c   |  9 +++++++--
 src/lib/ecore_drm2/ecore_drm2_planes.c     | 11 +++++++++--
 4 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/src/lib/ecore_drm2/ecore_drm2_connectors.c b/src/lib/ecore_drm2/ecore_drm2_connectors.c
index 7bfe468c19..d83242bdc7 100644
--- a/src/lib/ecore_drm2/ecore_drm2_connectors.c
+++ b/src/lib/ecore_drm2/ecore_drm2_connectors.c
@@ -238,6 +238,8 @@ _ecore_drm2_connectors_create(Ecore_Drm2_Device *dev)
    return EINA_TRUE;
 
 err:
+   eina_thread_queue_free(thq);
+   thq = NULL;
    _ecore_drm2_connectors_destroy(dev);
    sym_drmModeFreeConnector(conn);
    sym_drmModeFreeResources(res);
@@ -257,6 +259,9 @@ _ecore_drm2_connectors_destroy(Ecore_Drm2_Device *dev)
         free(conn);
      }
 
-   eina_thread_queue_free(thq);
-   thq = NULL;
+   if (thq)
+     {
+        eina_thread_queue_free(thq);
+        thq = NULL;
+     }
 }
diff --git a/src/lib/ecore_drm2/ecore_drm2_crtcs.c b/src/lib/ecore_drm2/ecore_drm2_crtcs.c
index c74813e164..a5d7cf494e 100644
--- a/src/lib/ecore_drm2/ecore_drm2_crtcs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_crtcs.c
@@ -219,6 +219,8 @@ _ecore_drm2_crtcs_create(Ecore_Drm2_Device *dev)
    return EINA_TRUE;
 
 err:
+   eina_thread_queue_free(thq);
+   thq = NULL;
    _ecore_drm2_crtcs_destroy(dev);
    sym_drmModeFreeCrtc(c);
    sym_drmModeFreeResources(res);
@@ -238,8 +240,11 @@ _ecore_drm2_crtcs_destroy(Ecore_Drm2_Device *dev)
         free(crtc);
      }
 
-   eina_thread_queue_free(thq);
-   thq = NULL;
+   if (thq)
+     {
+        eina_thread_queue_free(thq);
+        thq = NULL;
+     }
 }
 
 void
diff --git a/src/lib/ecore_drm2/ecore_drm2_displays.c b/src/lib/ecore_drm2/ecore_drm2_displays.c
index 9f22573d2d..5c439c1b18 100644
--- a/src/lib/ecore_drm2/ecore_drm2_displays.c
+++ b/src/lib/ecore_drm2/ecore_drm2_displays.c
@@ -449,6 +449,8 @@ _ecore_drm2_displays_create(Ecore_Drm2_Device *dev)
    Ecore_Drm2_Crtc *crtc;
    Eina_List *l = NULL, *ll = NULL;
 
+   thq = eina_thread_queue_new();
+
    /* go through list of connectors and create displays */
    EINA_LIST_FOREACH(dev->conns, l, c)
      {
@@ -517,8 +519,11 @@ _ecore_drm2_displays_destroy(Ecore_Drm2_Device *dev)
         free(disp);
      }
 
-   eina_thread_queue_free(thq);
-   thq = NULL;
+   if (thq)
+     {
+        eina_thread_queue_free(thq);
+        thq = NULL;
+     }
 }
 
 EAPI void
diff --git a/src/lib/ecore_drm2/ecore_drm2_planes.c b/src/lib/ecore_drm2/ecore_drm2_planes.c
index 5d4b15114b..650bc7a51d 100644
--- a/src/lib/ecore_drm2/ecore_drm2_planes.c
+++ b/src/lib/ecore_drm2/ecore_drm2_planes.c
@@ -265,6 +265,8 @@ _ecore_drm2_planes_create(Ecore_Drm2_Device *dev)
    pres = sym_drmModeGetPlaneResources(dev->fd);
    if (!pres) return EINA_FALSE;
 
+   thq = eina_thread_queue_new();
+
    for (; i < pres->count_planes; i++)
      {
         /* try to get this plane from drm */
@@ -286,6 +288,8 @@ _ecore_drm2_planes_create(Ecore_Drm2_Device *dev)
    return EINA_TRUE;
 
 err:
+   eina_thread_queue_free(thq);
+   thq = NULL;
    _ecore_drm2_planes_destroy(dev);
    sym_drmModeFreePlane(p);
    sym_drmModeFreePlaneResources(pres);
@@ -305,6 +309,9 @@ _ecore_drm2_planes_destroy(Ecore_Drm2_Device *dev)
         free(plane);
      }
 
-   eina_thread_queue_free(thq);
-   thq = NULL;
+   if (thq)
+     {
+        eina_thread_queue_free(thq);
+        thq = NULL;
+     }
 }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to