From: <tb...@us...> - 2011-05-13 05:34:39
|
Revision: 5348 http://gfarm.svn.sourceforge.net/gfarm/?rev=5348&view=rev Author: tbaba Date: 2011-05-13 05:34:32 +0000 (Fri, 13 May 2011) Log Message: ----------- fix recursive lock problem at journal_file reading. Modified Paths: -------------- gfarm_v2/trunk/server/gfmd/journal_file.c Modified: gfarm_v2/trunk/server/gfmd/journal_file.c =================================================================== --- gfarm_v2/trunk/server/gfmd/journal_file.c 2011-04-25 04:09:53 UTC (rev 5347) +++ gfarm_v2/trunk/server/gfmd/journal_file.c 2011-05-13 05:34:32 UTC (rev 5348) @@ -95,7 +95,7 @@ off_t tail; int wait_until_nonempty; pthread_cond_t nonfull_cond, nonempty_cond, cancel_cond; - pthread_mutex_t mutex; + pthread_mutex_t mutex, pos_mutex; }; #define JOURNAL_READER_LIST_HEAD(j) (&(j)->reader_list) @@ -270,10 +270,10 @@ struct journal_file *jf = reader->file; static const char *diag = "journal_file_reader_commit_pos"; - gfarm_mutex_lock(&jf->mutex, diag, JOURNAL_FILE_STR); + gfarm_mutex_lock(&jf->pos_mutex, diag, JOURNAL_FILE_STR); reader->pos = reader->la_pos; reader->cache_size = reader->la_cache_size; - gfarm_mutex_unlock(&jf->mutex, diag, JOURNAL_FILE_STR); + gfarm_mutex_unlock(&jf->pos_mutex, diag, JOURNAL_FILE_STR); } int @@ -1159,6 +1159,7 @@ gfarm_cond_init(&jf->nonempty_cond, diag, JOURNAL_FILE_STR); gfarm_cond_init(&jf->cancel_cond, diag, JOURNAL_FILE_STR); gfarm_mutex_init(&jf->mutex, diag, JOURNAL_FILE_STR); + gfarm_mutex_init(&jf->pos_mutex, diag, JOURNAL_FILE_STR); jf->wait_until_nonempty = 0; *jfp = jf; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |