This is the mail archive of the cygwin-patches@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[PATCH] Re: pthreads update for the adventurous


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]