From 87ad4a0e04a1b4220918c72191f6ea18e3dc267d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 10 Nov 2013 10:58:14 -0600 Subject: NxPlayer play thread stack size is now configurable; all NxPlayer threads are named via pthread_setname_np(). From Ken Pettit --- apps/system/nxplayer/Kconfig | 6 ++++++ apps/system/nxplayer/Makefile | 2 +- apps/system/nxplayer/nxplayer.c | 13 +++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) (limited to 'apps/system/nxplayer') diff --git a/apps/system/nxplayer/Kconfig b/apps/system/nxplayer/Kconfig index 0c366caa5..31362ba3b 100644 --- a/apps/system/nxplayer/Kconfig +++ b/apps/system/nxplayer/Kconfig @@ -11,6 +11,12 @@ config SYSTEM_NXPLAYER if SYSTEM_NXPLAYER +config NXPLAYER_PLAYTHREAD_STACKSIZE + int "NxPlayer thread stack size" + default 1500 + ---help--- + Stack size to use with the NxPlayer play thread. + config NXPLAYER_COMMAND_LINE bool "Include nxplayer command line application" default y diff --git a/apps/system/nxplayer/Makefile b/apps/system/nxplayer/Makefile index bcdcbfc0e..8de9d4b02 100644 --- a/apps/system/nxplayer/Makefile +++ b/apps/system/nxplayer/Makefile @@ -52,7 +52,7 @@ CSRCS = nxplayer.c APPNAME = nxplayer PRIORITY = SCHED_PRIORITY_DEFAULT -STACKSIZE = 3100 +STACKSIZE = 2048 ifeq ($(CONFIG_NXPLAYER_COMMAND_LINE),y) CSRCS += nxplayer_main.c diff --git a/apps/system/nxplayer/nxplayer.c b/apps/system/nxplayer/nxplayer.c index c39900cce..1c0f66c8a 100644 --- a/apps/system/nxplayer/nxplayer.c +++ b/apps/system/nxplayer/nxplayer.c @@ -72,6 +72,10 @@ # define CONFIG_NXPLAYER_MSG_PRIO 1 #endif +#ifndef CONFIG_NXPLAYER_PLAYTHREAD_STACKSIZE +# define CONFIG_NXPLAYER_PLAYTHREAD_STACKSIZE 1500 +#endif + /**************************************************************************** * Private Type Declarations ****************************************************************************/ @@ -1323,7 +1327,8 @@ int nxplayer_playfile(FAR struct nxplayer_s *pPlayer, char* pFilename, int filef pthread_attr_init(&tattr); sparam.sched_priority = sched_get_priority_max(SCHED_FIFO) - 9; - pthread_attr_setschedparam(&tattr, &sparam); + (void)pthread_attr_setschedparam(&tattr, &sparam); + (void)pthread_attr_setstacksize(&tattr, CONFIG_NXPLAYER_PLAYTHREAD_STACKSIZE); /* Add a reference count to the player for the thread and start the * thread. We increment for the thread to avoid thread start-up @@ -1332,13 +1337,17 @@ int nxplayer_playfile(FAR struct nxplayer_s *pPlayer, char* pFilename, int filef nxplayer_reference(pPlayer); ret = pthread_create(&pPlayer->playId, &tattr, nxplayer_playthread, - (pthread_addr_t) pPlayer); + (pthread_addr_t) pPlayer); if (ret != OK) { auddbg("Error %d creating playthread\n", ret); goto err_out; } + /* Name the thread */ + + pthread_setname_np(pPlayer->playId, "playthread"); + return OK; err_out: -- cgit v1.2.3