]> Cypherpunks.ru repositories - gostls13.git/blob - misc/cgo/test/cthread_unix.c
Revert "runtime/cgo: store M for C-created thread in pthread key"
[gostls13.git] / misc / cgo / test / cthread_unix.c
1 // Copyright 2013 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris
6
7 #include <pthread.h>
8 #include "_cgo_export.h"
9
10 static void*
11 addThread(void *p)
12 {
13         int i, max;
14         
15         max = *(int*)p;
16         for(i=0; i<max; i++)
17                 Add(i);
18         return 0;
19 }
20
21 void
22 doAdd(int max, int nthread)
23 {
24         enum { MaxThread = 20 };
25         int i;
26         pthread_t thread_id[MaxThread];
27         
28         if(nthread > MaxThread)
29                 nthread = MaxThread;
30         for(i=0; i<nthread; i++)
31                 pthread_create(&thread_id[i], 0, addThread, &max);
32         for(i=0; i<nthread; i++)
33                 pthread_join(thread_id[i], 0);          
34 }