synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Veithen (JIRA)" <>
Subject [jira] Created: (SYNAPSE-434) Concurrency level provided by the mail and VFS transports listeners is insufficient
Date Sat, 23 Aug 2008 16:29:44 GMT
Concurrency level provided by the mail and VFS transports listeners is insufficient

                 Key: SYNAPSE-434
             Project: Synapse
          Issue Type: Bug
          Components: Transports
    Affects Versions: 1.2
            Reporter: Andreas Veithen
            Priority: Minor

* Two services are configured to use the (mail or VFS) transport.
* Two messages are sent two each of these services.

In this case, one would expect that the transport listener will be able to process at least
2 (better 4) messages concurrently. However the listener currently only processes one message
at a time, i.e. the listener behaves as if it was single-threaded.

There are two reasons for this:

1. AbstractPollingTransportListener contains the following code:

workerPool.execute(new Runnable() {
    public void run() {
        synchronized (pollLock) {
            pollInProgress = true;
            try {
            } finally {
                pollInProgress = false;

Since pollLock is a member of AbstractPollingTransportListener, there can only be one poll
in progress at a time, even if several services are configured to use the transport (in which
case nothing would prevent the transport from executing the polls for the different services
in parallel).

2. Both MailTransportListener and VFSTransportListener process incoming messages sequentially.
Here again, the transport could process several messages in parallel during the execution
of the onPoll method.

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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message