2012-03-22 26 views
3

我想實現新的屏障功能。如何找到屏障功能的實現?

首先,我想知道默認屏障的實現。 (phtread,LINUX)

而且我發現pthread.h(/ usr/include目錄)

但在這個文件我找不到屏障實現。只有聲明。

1040 /* Functions to handle barriers. */          
1041 
1042 /* Initialize BARRIER with the attributes in ATTR. The barrier is 
1043 opened when COUNT waiters arrived. */ 
1044 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 
1045     __const pthread_barrierattr_t *__restrict 
1046     __attr, unsigned int __count) 
1047  __THROW __nonnull ((1)); 
1048 
1049 /* Destroy a previously dynamically initialized barrier BARRIER. */ 
1050 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 
1051  __THROW __nonnull ((1)); 
1052 
1053 /* Wait on barrier BARRIER. */ 
1054 extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 
1055  __THROW __nonnull ((1)); 

請教我障礙函數的實現在哪裏。

+0

[PThread Library的源代碼?]的可能的重複(http://stackoverflow.com/questions/3224252/source-code-of-pthread-library) – 2012-03-22 05:06:13

回答

2

http://ptgmedia.pearsoncmg.com/images/0201633922/sourcecode/barrier.c

查找INT barrier_wait(barrier_t *屏障)如何使用一個計數器來跟蹤待處理的線程的數目。

+2

只是一個說明:我相信這是來自「使用POSIX線程編程「David R. Butenhof編寫。 – 2012-03-22 19:52:57

+0

似乎是這樣,任何想法在該書的代碼示例許可是什麼? – Yaakov 2015-06-16 15:40:25