Apparently I did not understand semantics of RWL. I thought that writer 
can obtain a write lock even though read lock has not been released. But 
no, after all read locks have been released only then a writer can 
obtain a lock.



On 11-05-16 11:18 PM, Sanne Grinovero wrote:
> Same result here - where you expecting something different?
>
> Cheers,
> Sanne
>
> 2011/5/16 Erik Salter<esal...@bnivideo.com>:
>> EDIT:  Originally posted in the wrong thread.  I blame Outlook.
>>
>> I guess I qualify as "others", since I'm looking at similar issues.
>>
>> Got read lock
>> java.util.concurrent.TimeoutException: Thread-1 could not obtain exclusive 
>> processing lock after 3 seconds.  Locks in question are 
>> java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock@16aa37a6[Read 
>> locks = 1] and 
>> java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock@12b7eea[Unlocked]
>>
>> This is on the latest master.
>>
>> Erik
>>
>> -----Original Message-----
>> From: infinispan-dev-boun...@lists.jboss.org 
>> [mailto:infinispan-dev-boun...@lists.jboss.org] On Behalf Of Vladimir 
>> Blagojevic
>> Sent: Monday, May 16, 2011 4:25 PM
>> To: infinispan -Dev List
>> Cc: Manik Surtani
>> Subject: Re: [infinispan-dev] JGroupsDistSync and ISPN-83
>>
>> Manik (and others),
>>
>> Can you run this code on your laptops and let me know what happened!
>>
>> Vladimir
>>
>>     public static void main (String [] arg) throws Exception {
>>        final JGroupsDistSync ds = new JGroupsDistSync();
>>
>>        ds.acquireProcessingLock(false, 3, TimeUnit.SECONDS);
>>        System.out.println("Got read lock");
>>
>>        Thread t = new Thread(){
>>          public void run (){
>>             try {
>>              ds.acquireProcessingLock(true, 3, TimeUnit.SECONDS);
>>              System.out.println("Got write lock");
>>           } catch (TimeoutException e) {
>>              System.out.println(e);
>>           }
>>          }
>>        };
>>        t.start();
>>     }
>>
>>
>>
>> On 11-05-13 4:53 PM, Manik Surtani wrote:
>>> Yes, please have a look. If we are relying on lock upgrades then that's 
>>> really bad. I am aware of the inability to (safely) upgrade a RWL and I'm 
>>> pretty sure we don't try, but the dist sync codebase has evolved a lot and 
>>> could do with some careful analysis.
>>>
>>> Sent from my mobile phone
>>>
>>> On 12 May 2011, at 09:24, Vladimir Blagojevic<vblag...@redhat.com>    wrote:
>>>
>>>> On 11-05-11 11:23 AM, Dan Berindei wrote:
>>>>> If ReentrantReadWriteLock would allow upgrades then you would get a
>>>>> deadlock when two threads both hold the read lock and try to upgrade
>>>>> to a write lock at the same time.
>>>>> There's always a trade-off...
>>>>>
>>>>> I'm not familiar with the code, but are you sure the read lock is
>>>>> being held by the same thread that is trying to acquire the write
>>>>> lock?
>>>>>
>>>> Not sure and it sounds counter intuitive that a thread holding a read
>>>> lock from cluster invocation is doing state generation for state
>>>> transfer as well. But this lock business is fishy and I plan to get
>>>> to the bottom of it...
>>>>
>>>> _______________________________________________
>>>> infinispan-dev mailing list
>>>> infinispan-dev@lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>>> _______________________________________________
>>> infinispan-dev mailing list
>>> infinispan-dev@lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>>
>> The information contained in this message is legally privileged and 
>> confidential, and is intended for the individual or entity to whom it is 
>> addressed (or their designee). If this message is read by anyone other than 
>> the intended recipient, please be advised that distribution of this message, 
>> in any form, is strictly prohibited. If you have received this message in 
>> error, please notify the sender immediately and delete or destroy all copies 
>> of this message.
>>
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to