[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 05/09 11:59 / Filesize : 46 KB / Number-of Response : 147
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

pthread地獄 part 2



125 名前:93 mailto:sage [2008/07/24(木) 13:50:31 ]
>>118
こんな感じですか。
ワーカー側でcond_broadcast使わなくても良くなったので、無駄なスレッドが
起こされなくなってちょっと軽くなったのかな。

ボス側
   pthread_mutex_lock(&m_end);
   while (0 != thread_num) {
      while(NULL == thr_end) {
         pthread_cond_wait(&c_end_boss, &m_end);
      }
      nrc = pthread_join(thr_end, NULL);
      if (0 == nrc) {
         fprintf(stdout, "thread %5d is exited...\n", thr_end);
         --thread_num;
         thr_end = NULL;
      }else{
         fprintf(stdout, "Error pthread_join() return %d\n", nrc);
      }
      pthread_cond_broadcast(&c_end_work);
   }
   pthread_mutex_unlock(&m_end);

ワーカー側
   pthread_mutex_lock(&m_end);
   while (NULL != thr_end) {
      pthread_cond_wait(&c_end_work, &m_end);
   }
   thr_end = pthread_self();
   pthread_cond_signal(&c_end_boss);
   pthread_mutex_unlock(&m_end);
   pthread_exit((void *)NULL);






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<46KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef