Menu

eBus 3.2.3: Fourth of July Release.

eBus v. 3.2.3

Overview: Bug fixes and improvements.

NOTE: I am unable to check in my changes to eBus' SourceForge
Subversion repository. The source code is available as a
separate download. The changes will be checked in as soon
as the problems are resolved.


net.sf.eBus.client:

EClient:
Changed executor thread creation and assignment so that:
1. A new executor is created only when needed (up to a maximum
set at the number of available processors).
2. A client is assigned to the executor with the fewest number
of clients.
3. If the client is an ERemoteApp proxy, the proxy uses the
ERemoteApp's executor. That means each eBus connection uses
only one executor.

ERemoteApp:
Associated EClient executor with a each ERemoteApp. That
executor is also used by the ERemoteApp proxies. All
interactions with ERemoteApp are now converted to Runnable
tasks and posted to this executor. This means ERemoteApp and
proxies are now single-threaded. All synchronization is removed
from ERemoteApp.

Corrected memory leak associated with ProxyRequestor.

Removed the unused _requests map.

EFeed
EFeedMap:
Added try/catch block around ESubject.publish() call.

ERequestSubject
ERequestSubscription:
Removed unnecessary ERequestor data member from
ERequestSubscription.


net.sf.eBus.comm

EConnection
EConnectionThread:
Deleted EConnectionThread. ConnectionListener tasks are now
posted to the ERemoteApp's EClient executor.


net.sf.eBus.util

IndexPool:
Redesigned to be thread-safe using AtomicInteger and
ConcurrentLinkedDeque.


net.sf.eBusx.io

EFileWatcher:
Replaced HashMap with ConcurrentHashMap and removed explicit
synchronization.

Posted by Charles Rapp 2014-07-05

Log in to post a comment.