2011-03-08 31 views
3

當pthread_create()返回errno 11(EAGAIN)時,「資源暫時不可用」是什麼意思?爲什麼pthread_create()有時會在Cygwin端口上提供EAGAIN?

我正在將我的應用程序移植到Cygwin上,它在Centos 4上運行得非常好。每隔一段時間,應用程序在調用pthread_create()時都會失敗,但大多數情況下工作正常。

這是什麼意思?

Linux的Centos的4男子頁說:

EAGAIN The system lacked the necessary resources to create another thread, or the system-imposed limit on the total number of threads in a process 
      {PTHREAD_THREADS_MAX} would be exceeded. 

我懷疑我打PTHREAD_THREADS_MAX,怎麼可能在Cygwin系統耗盡資源,以創建另一個線程?

+0

我在幾個項目上遇到過同樣的事情,並且總是把它寫成cygwin的許多注意事項之一。 +1 –

+0

@Tim Post你的工作是什麼? – WilliamKF

+2

EAGAIN - 再試一次。 – nos

回答

1

pthread_create() man page
EAGAIN
系統缺乏必要的資源來創建另一個線程,或者線程總數的系統強加的限制:

將在pthread_create()函數應如果失敗在一個進程{PTHREAD_THREADS_MAX}將被超過。

發佈一些資源後,您可以再試一次。

相關問題