From: Andrew Lunn <andrew@lunn.ch>
To: Aravind B <arvindb@cranessoftware.com>
Cc: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] therad delay problem
Date: Tue, 25 Nov 2003 08:30:00 -0000 [thread overview]
Message-ID: <20031125083030.GC21161@lunn.ch> (raw)
In-Reply-To: <1069738146.1002.23.camel@ambica>
On Tue, Nov 25, 2003 at 10:59:06AM +0530, Aravind B wrote:
> hi,
> i have written a program which contains 3 thread as shown.
>
> cyg_user_start(void)
> {
>
> printf("entering two threads cyg_user_start() function\n");
>
> cyg_mutex_init(&cliblock);
> cyg_thread_create(3,simple_program,(cyg_addrword_t)2,
> "simple_program_Thread ",(void*) stack[2],4096,
> &simple_program_Thread,&thread_s[2]);
> cyg_thread_create(4,simple_program1,(cyg_addrword_t)3,
> "simple_program1_Thread",(void*) stack[3],4096,
> &simple_program1_Thread,&thread_s[3]);
> cyg_thread_create(5,simple_program2,(cyg_addrword_t)4,
> "simple_program2_Thread",(void*) stack[4],4096,
> &simple_program2_Thread,&thread_s[4]);
>
> cyg_thread_resume(simple_program_Thread);
> cyg_thread_resume(simple_program1_Thread);
> cyg_thread_resume(simple_program2_Thread);
> }
> cyg_alarm_t alarm_Tbcn_func;
>
> void simple_program(cyg_addrword_t data )
> {
> int message=(int) data;
> unsigned int i;
> printf("i am thread %d before delay\n",message);
>
> curr_time=cyg_real_time_clock();
> cyg_clock_to_counter(curr_time,&handle_counterTbcn);
> cyg_alarm_create(handle_counterTbcn, alarm_Tbcn_func,5500,
> &handle_alarmTbcn, &alarm_Tbcn);
> cyg_alarm_initialize(handle_alarmTbcn,cyg_current_time()+200,0);
>
> cyg_thread_delay(3);
> while(1)
> {
> if(var==1)
> {
> printf(" hello");
> break;
> }
> }
> }
>
> void simple_program1(cyg_addrword_t data )
> {
> int message=(int) data;
> printf("i am thread %d\n",message);
> }
>
> void simple_program2(cyg_addrword_t data )
> {
> int message=(int) data;
> printf("i am thread %d\n",message);
> while(1)
> {
> }
> }
> void alarm_Tbcn_func( cyg_handle_t alarmTbcn,cyg_addrword_t data)
> {
> var=1;
> printf(" i am in alarm function\n");
> }
>
>
> there is cyg_thread _delay(3) in t1.the control goes to t2 and then
> t3.In t3 i have infinite while loop.The control is not going to t1.Is
> there any way so that i can signal to t1 that thread delay is over and
> it can continue its flow.If so then how it is?
Does the alarm hander get called?
it var a volatile?
Andrew
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
next prev parent reply other threads:[~2003-11-25 8:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-25 5:36 Aravind B
2003-11-25 8:30 ` Andrew Lunn [this message]
2003-11-25 12:58 ` Gary Thomas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20031125083030.GC21161@lunn.ch \
--to=andrew@lunn.ch \
--cc=arvindb@cranessoftware.com \
--cc=ecos-discuss@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).