Path: csiph.com!usenet.pasdenom.info!gegeweb.org!eternal-september.org!feeder.eternal-september.org!mx04.eternal-september.org!.POSTED!not-for-mail From: "aminer" Newsgroups: comp.programming.threads,comp.programming Subject: Re: Distributed Reader-Writer Mutex by Dmitry Vyukov Date: Sat, 25 Aug 2012 19:23:11 -0500 Organization: A noiseless patient Spider Lines: 81 Message-ID: References: Injection-Date: Sat, 25 Aug 2012 23:23:17 +0000 (UTC) Injection-Info: mx04.eternal-september.org; posting-host="c43ca82f9e8d62a602307fe9d2e9b807"; logging-data="15723"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+6MBVUvQ8mEp+4KsV1mXdP" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512 X-RFC2646: Format=Flowed; Response X-Newsreader: Microsoft Outlook Express 6.00.2900.5512 Cancel-Lock: sha1:uCsWrslcgBb2uqbAfBaMS7xx7bk= X-Priority: 3 X-MSMail-Priority: Normal Xref: csiph.com comp.programming.threads:1026 comp.programming:2106 "aminer" wrote in message news:k1bmhr$e9n$1@dont-email.me... > > I wrote: >> So i think you have to use a critical section around the for loop to be >> able to lock >> all the rwlocks at the same time to avoid the deadlock problem.. > > > I mean you have to use a critical section around the for loop to be able > to lock all the rwlocks atomicly to avoid the deadlock problem.. Sorry for my english: i mean atomically. Thank you, Amine Moulay Ramdne. > > > > > > Thank you, > Amine Moulay Ramdane. > > > > "aminer" wrote in message > news:k1bkhs$uk8$1@dont-email.me... >> >> >> Hello all; >> >> I have loolked at the Distributed Reader-Writer Mutex by Dmitry Vyukov, >> look at >> >> http://www.1024cores.net/home/lock-free-algorithms/reader-writer-problem/distributed-reader-writer-mutex >> >> >> and i have looked at it and i think there is a problem with this method, >> cause look >> at the write lock function: >> >> int distr_rw_mutex_wrlock (distr_rw_mutex_t* mtx) >> { >> int i; >> for (i = 0; i != mtx->proc_count; i += 1) >> pthread_rwlock_wrlock(&mtx->cell[i].mtx); >> return 0; >> } >> >> >> What is wrong with it ? suppose two or more writers wants to lock this >> distributed rwlock >> there is a possibility of a deadlock. >> >> So i think you have to use a critical section around the for loop to be >> able to lock >> all the rwlocks at the same time to avoid the deadlock problem.. >> >> >> Am i correct or not ? >> >> >> Thank you, >> Amine Moulay Ramdane. >> >> >> >> >> > >