(root)/
gcc-13.2.0/
libgo/
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  // +build aix darwin dragonfly freebsd hurd 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  }