Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com Message-ID: <020601c0d289$9b5056e0$0200a8c0@lifelesswks> From: "Robert Collins" To: Subject: Fw: loop in pthread_cond_broadcast Date: Wed, 2 May 2001 07:56:38 +1000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-OriginalArrivalTime: 01 May 2001 21:51:38.0788 (UTC) FILETIME=[E651CE40:01C0D288] I want to get afix for this into 1.3.2 as well chris. I can't touch it till staurday morning however :[ Rob ----- Original Message ----- From: "Greg Smith" To: "greg smith" Sent: Wednesday, May 02, 2001 4:47 AM Subject: loop in pthread_cond_broadcast > Below is a sample program that illustrates a loop in pthread_cond_broadcast() > when called the second time. CPU utilization goes to 100% and the function > never returns. > > Thanks, Greg > > gsmith AT GREG ~ > $ cat ptbarf.c > #include > #include > > void *baby(); > > pthread_cond_t cond; > pthread_mutex_t lock; > pthread_attr_t attr; > pthread_t tid; > > int main () > { > int i; > > pthread_cond_init(&cond, NULL); > pthread_attr_init(&attr); > pthread_mutex_init(&lock, NULL); > > pthread_mutex_lock(&lock); > pthread_create(&tid, &attr, baby, NULL); > > for (i=0; i<10; i++) > { sleep(1); > printf("before cond wait\n"); > pthread_cond_wait(&cond, &lock); > printf("after cond wait\n"); > } > pthread_mutex_unlock(&lock); > } > > void *baby() > { > while (1) > { sleep(2); > pthread_mutex_lock(&lock); > printf("before cond broadcast\n"); > pthread_cond_broadcast(&cond); > printf("after cond broadcast\n"); > pthread_mutex_unlock(&lock); > } > } > > gsmith AT GREG ~ > $ gcc -o ptbarf ptbarf.c > > gsmith AT GREG ~ > $ ./ptbarf > before cond wait > before cond broadcast > after cond broadcast > after cond wait > before cond wait > before cond broadcast > > -- > Want to unsubscribe from this list? > Check out: http://cygwin.com/ml/#unsubscribe-simple > >