uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jerry Cwiklik (JIRA)" <uima-...@incubator.apache.org>
Subject [jira] Assigned: (UIMA-1153) thread safety issue with sample flow controller AdvancedFixedFlowController
Date Thu, 06 Aug 2009 16:32:15 GMT

     [ https://issues.apache.org/jira/browse/UIMA-1153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jerry Cwiklik reassigned UIMA-1153:
-----------------------------------

    Assignee: Burn Lewis

> thread safety issue with sample flow controller AdvancedFixedFlowController
> ---------------------------------------------------------------------------
>
>                 Key: UIMA-1153
>                 URL: https://issues.apache.org/jira/browse/UIMA-1153
>             Project: UIMA
>          Issue Type: Bug
>          Components: Async Scaleout, Examples
>    Affects Versions: 2.2.2
>            Reporter: Marshall Schor
>            Assignee: Burn Lewis
>            Priority: Minor
>
> The AdvancedFixedFlowController implements its Flow Object class as an inner class of
its Flow Controller class.
> In UIMA-AS, it is possible that more than one Flow Object can be accessing the Flow Controller
fields on different threads, and (for Cas Multipliers) it is possible for an individual Flow
Object to be called on multiple threads at the same time (via the method (via the newCasProduced
method).  
> In the example, the newCasProduced method is marked *synchronized*, so I think the same
Flow Object will not be running multiple threads at the same time, because the other methods
to this are all calls done on 1 thread on behalf of the main CAS associated with this Flow
Object.
> However, multiple flow objects running on different threads could have their newCasProduced
method called.  In this case, the references in that method to common mutable fields in the
shared Flow Controller object are not synchronized.  This code should be fixed so that those
references are synchronized on the same monitor used to synchronize other field access in
the Flow Controller.  UIMA-1149 I hope will use the class instance of the flow controller
for this purpose, and, assuming that it does, this code should explicitly synchronize on that
same object, for references to mutable fields in that class.  There is one field, mSequence,
which is in the associated Flow Controller class, which is mutable (in theory).  References
to this field should be synchronized with the same monitor used by the flow controller class
when manipulating it.
> The other field references in the flow object should be checked, and synchronized if
they refer to mutable Flow Controller fields.

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


Mime
View raw message