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.