https://issues.apache.org/bugzilla/show_bug.cgi?id=56456
Bug ID: 56456
Summary: Suggesting lock-free endpoint state machine
Product: Tomcat 8
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P2
Component: WebSocket
Assignee: [email protected]
Reporter: [email protected]
Created attachment 31558
--> https://issues.apache.org/bugzilla/attachment.cgi?id=31558&action=edit
EndpointStateMachine class using AtomicInteger
In regard to https://issues.apache.org/bugzilla/show_bug.cgi?id=55799 ,
now org.apache.tomcat.websocket.WsRemoteEndpointImplBase has its StateMachine
to handle wrong concurrent accesses correctly.
I've reading the code carefully and have concluded that it would be more
effective if it uses lock-free synchronization using one of AtomicXXX classes.
Based on https://www.ibm.com/developerworks/java/library/j-jtp11234/ and some
other articles,
I've changed 'state' to use AtomicInteger, and have adopted CAS to remove all
'synchronized' blocks.
And for the unit test and readability, StateMachine class is moved to the upper
class, having the name 'EndpointStateMachine'.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]