[ 
https://issues.apache.org/jira/browse/APEXCORE-510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15426932#comment-15426932
 ] 

Vlad Rozov commented on APEXCORE-510:
-------------------------------------

- Changing emit() to be final breaks backward compatibility.
- It should be possible to use DefaultOutputPort.setup() to initialize Thread 
object instead of relying on reflection. It may be necessary to see if 
DefaultOutputPort.setup() is called on the correct thread and if not, why.
- It is important to benchmark the change.

> Enforce DefaultOutputPort.emit() or Sink.put() thread affinity
> --------------------------------------------------------------
>
>                 Key: APEXCORE-510
>                 URL: https://issues.apache.org/jira/browse/APEXCORE-510
>             Project: Apache Apex Core
>          Issue Type: Improvement
>            Reporter: Vlad Rozov
>
> Apex platform assumes that an operator interacts with the platform using the 
> dedicated operator thread. Currently, operators may create worker threads and 
> emit tuples from a worker thread. This leads to undefined behavior and hard 
> to find bugs, so it should be possible to enforce that 
> DefaultOutputPort.emit() and/or Sink.put() are called on the operator thread.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to