[alsa-devel] [PATCH 1/1] alsabat: add terminate status check for capture thread

han.lu at intel.com han.lu at intel.com
Sun Apr 17 03:26:45 CEST 2016


From: "Lu, Han" <han.lu at intel.com>

In loopback test, alsabat use pthread_join(pthread_t thread, **retval)
to wait for the capture thread to terminate. If the capture thread was
canceled, PTHREAD_CANCELED is placed in *retval, and the access to the
**retval will fail. Add status check to prevent illegal access to the
**retval.

Signed-off-by: Lu, Han <han.lu at intel.com>

diff --git a/bat/bat.c b/bat/bat.c
index e824065..1afdcb4 100644
--- a/bat/bat.c
+++ b/bat/bat.c
@@ -192,6 +192,12 @@ static void test_loopback(struct bat *bat)
 		exit(EXIT_FAILURE);
 	}
 
+	/* check if capture thread is canceled or not */
+	if (thread_result_capture == PTHREAD_CANCELED) {
+		fprintf(bat->log, _("Capture canceled.\n"));
+		return;
+	}
+
 	/* check capture status */
 	if (*thread_result_capture != 0) {
 		fprintf(bat->err, _("Exit capture thread fail: %d\n"),
-- 
2.5.0



More information about the Alsa-devel mailing list