This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Problem spawning a thread in Ecos
- From: "Nikhil R." <nikhil_r at mindtree dot com>
- To: <ecos-discuss at sources dot redhat dot com>
- Date: Wed, 15 Jan 2003 18:28:26 +0530
- Subject: [ECOS] Problem spawning a thread in Ecos
Hi all,
We have a problem spawning a thread in Ecos using Uitron calls.
We have created our own package to run on ecos. We r also using the Uitron
compatibility package. From the constuctor of our package we make a call to
cre_tsk. The call fails. However when we make the call to cre_tsk from an
application (written on top of our eCos) using the same task id the call
succeeds. Here is a snapshot of the function (mt_mnet_init) called from the
pkg constructor.
void* mt_init(void* param)
{
diag_printf("In mt_init\n");
return NULL;
}
/*
* This function is invoked by constructor of the mnet_class
* instance. This class is defined in ecos/init.cxx.
* when the stack is brought up. This function spawns a IPv6
* background thread.
*/
void mt_mnet_init(void)
{
ID tid = 13;
T_CTSK thread_attr;
int retval;
static int _init = false;
if(_init) return;
mt_do_mnet_init(); // Blank function
printf ( " Going to create task of %d\n", tid );
thread_attr.exinf = 0;
thread_attr.tskatr = TA_HLNG;
thread_attr.itskpri = 8;
thread_attr.stksz = 2048;
thread_attr.task = (FP)mt_init;
retval = cre_tsk(tid, &thread_attr);
if(retval != E_OK)
{
printf("###### The Thread Create API failed %d \n",retval);
}
else
{
printf(" Thread create successful!!! \n");
}
_init = true;
}
Cheers,
Nikhil
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss