This is the mail archive of the
cygwin-patches@cygwin.com
mailing list for the Cygwin project.
[PATCH] Re: pthreads update for the adventurous
- To: "Billinghurst, David \(CRTS\)" <David dot Billinghurst at riotinto dot com>,<cygwin at cygwin dot com>,<cygwin-patches at cygwin dot com>
- Subject: [PATCH] Re: pthreads update for the adventurous
- From: "Robert Collins" <robert dot collins at itdomain dot com dot au>
- Date: Sat, 14 Apr 2001 09:55:35 +1000
- References: <8D00C32549556B4E977F81DBC24E985DC80C@crtsmail1.technol_exch.corp.riotinto.org>
Thanks for the report David. That bugs been in cygwin's pthread support
forever - but it's gone now. (Cross fingers)
If you apply the attached patch to your CVS working directory and make a
new cygwin1.dll the test should pass.
Otherwise, you can wait for the next snapshot.
Chris: I hope the changelog and patch are ok..
==
Saturday Apr 14 2001 Robert Collins <rbtcollins@hotmail.com>
* thread.h (MTinterface): Add threadcount.
* thread.cc (MTinterface::Init): Set threadcount to 1.
(__pthread_create): Increment threadcount.
(__pthread_exit): Decrement threadcount and call exit() from the last
thread.
==
Rob
----- Original Message -----
From: "Billinghurst, David (CRTS)" <David.Billinghurst@riotinto.com>
To: <cygwin@cygwin.com>
Sent: Friday, April 13, 2001 10:55 PM
Subject: RE: pthreads update for the adventurous
> OK. I'll bite.
>
> I have built cygwin1.dll from cvs, then proceeded to build and test
gcc-3.0
> with --enable-threads=posix. This seems to work OK.
>
> I then tried example 1 from
>
http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN
.htm
> l (below) using standard cygwin gcc-2.95.3-2 and the gcc-3.0 I built.
There
> appears to be a problem with pthread_exit() as the program never
exits. I
> tried to debug this, but soon got lost.
>
>
>
>
/***********************************************************************
****
> ***
> * FILE: hello.c
> * DESCRIPTION:
> * A "hello world" Pthreads program. Demonstrates thread creation
and
> * termination.
> *
> * SOURCE:
> * LAST REVISED: 9/20/98 Blaise Barney
>
************************************************************************
****
> **/
>
> #include <pthread.h>
> #include <stdio.h>
> #define NUM_THREADS 5
>
> void *PrintHello(void *threadid)
> {
> printf("\n%d: Hello World!\n", threadid);
> pthread_exit(NULL);
> }
>
> int main()
> {
> pthread_t threads[NUM_THREADS];
> int rc, t;
> for(t=0;t<NUM_THREADS;t++){
> printf("Creating thread %d\n", t);
> rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
> if (rc){
> printf("ERROR; return code from pthread_create() is %d\n",
rc);
> exit(-1);
> }
> }
> pthread_exit(NULL);
> }
>
>
> --
> Want to unsubscribe from this list?
> Check out: http://cygwin.com/ml/#unsubscribe-simple
>
>
pthread_exit.ChangeLog
pthread_exit.patch