annotate libgo/misc/cgo/test/cthread_unix.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // Copyright 2013 The Go Authors. All rights reserved.
kono
parents:
diff changeset
2 // Use of this source code is governed by a BSD-style
kono
parents:
diff changeset
3 // license that can be found in the LICENSE file.
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 #include <pthread.h>
kono
parents:
diff changeset
8 #include "_cgo_export.h"
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 static void*
kono
parents:
diff changeset
11 addThread(void *p)
kono
parents:
diff changeset
12 {
kono
parents:
diff changeset
13 int i, max;
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 max = *(int*)p;
kono
parents:
diff changeset
16 for(i=0; i<max; i++)
kono
parents:
diff changeset
17 Add(i);
kono
parents:
diff changeset
18 return 0;
kono
parents:
diff changeset
19 }
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 void
kono
parents:
diff changeset
22 doAdd(int max, int nthread)
kono
parents:
diff changeset
23 {
kono
parents:
diff changeset
24 enum { MaxThread = 20 };
kono
parents:
diff changeset
25 int i;
kono
parents:
diff changeset
26 pthread_t thread_id[MaxThread];
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 if(nthread > MaxThread)
kono
parents:
diff changeset
29 nthread = MaxThread;
kono
parents:
diff changeset
30 for(i=0; i<nthread; i++)
kono
parents:
diff changeset
31 pthread_create(&thread_id[i], 0, addThread, &max);
kono
parents:
diff changeset
32 for(i=0; i<nthread; i++)
kono
parents:
diff changeset
33 pthread_join(thread_id[i], 0);
kono
parents:
diff changeset
34 }