NxPlayer play thread stack size is now configurable; all NxPlayer threads are named via pthread_setname_np(). From Ken Pettit

This commit is contained in:
Gregory Nutt 2013-11-10 10:58:14 -06:00
parent bfcc6ae4d7
commit ffed849881
4 changed files with 21 additions and 4 deletions

View File

@ -730,4 +730,6 @@
David Sidrane (2013-11-06).
* apps/system/composite/composite_main.c: The wrong handle was getting
nullified. From David Sidrane (2013-11-7).
* apps/system/nxplayer: Play thread stack size is now configurable. All
NxPlayer threads now have names assigned via pthread_setname_np().
From Ken Pettit (2013-11-10).

View File

@ -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

View File

@ -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

View File

@ -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: