[ 
https://issues.apache.org/jira/browse/FELIX-908?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12668798#action_12668798
 ] 

Felix Meschberger commented on FELIX-908:
-----------------------------------------

IIRC assignment of an int is an atomic operation (in contrast to long 
assignment which is not atomic), so synchronization is not required at, either 
the state field has the new or the old value, but never something in-between.

Also IIRC, the handling of volatile fields has changed with the Java 5 memory 
model. So using a volatile field here might create an implicit dependency on 
Java 5, right ?

I may be completely wrong here ;-)

> Unsynchronize access to bundle state inside BundleInfo by making the variable 
> volatile
> --------------------------------------------------------------------------------------
>
>                 Key: FELIX-908
>                 URL: https://issues.apache.org/jira/browse/FELIX-908
>             Project: Felix
>          Issue Type: Improvement
>          Components: Framework
>    Affects Versions: felix-1.2.1

>            Reporter: Anatoli Kazatchkov
>            Priority: Minor
>         Attachments: bundle_info.patch
>
>
> Synchronized access to bundle state inside {{BundleInfo}} class creates an 
> unnecessary contention point in environments where {{bundle.getState()}} is 
> called a lot.
> Declaring {{m_state}} variable volatile and removing synchronization from 
> {{setState()}} and {{getState()}} will do the trick.I will attach the patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to