From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19663 invoked by alias); 25 Nov 2003 05:36:41 -0000 Mailing-List: contact ecos-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@sources.redhat.com Received: (qmail 19648 invoked from network); 25 Nov 2003 05:36:35 -0000 Received: from unknown (HELO cranessoftware.com) (203.200.61.237) by sources.redhat.com with SMTP; 25 Nov 2003 05:36:35 -0000 Received: from [10.0.0.121] [10.0.0.121] by cranessoftware.com [10.0.0.7] with SMTP (MDaemon.Standard.v4.0.5.R) for ; Tue, 25 Nov 2003 10:58:09 +0530 From: Aravind B To: ecos-discuss@sources.redhat.com Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Tue, 25 Nov 2003 05:36:00 -0000 Message-Id: <1069738146.1002.23.camel@ambica> Mime-Version: 1.0 X-MDRemoteIP: 10.0.0.121 X-Return-Path: arvindb@cranessoftware.com X-MDaemon-Deliver-To: ecos-discuss@sources.redhat.com Subject: [ECOS] therad delay problem X-SW-Source: 2003-11/txt/msg00354.txt.bz2 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? thank u in advance ############################# Aravind B Trainee Engineer. CSIL. _______________________________________________ This email with any attachments is for the exclusive use of the intended recipient/s & may contain confidential & legally privileged information. If you are not the intended recipient pls notify the sender immediately & delete the email from your system. Any unauthorised use, disclosure, printing, dissemination, forwarding or copying of this mail is strictly prohibited and unlawful. Visit us at : http://www.cranessoftware.com -- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss