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

ASF GitHub Bot commented on PROTON-2377:
----------------------------------------

astitcher commented on a change in pull request #310:
URL: https://github.com/apache/qpid-proton/pull/310#discussion_r618554739



##########
File path: cpp/src/sender.cpp
##########
@@ -60,14 +61,20 @@ class target sender::target() const {
 }
 
 namespace {
-// TODO: revisit if thread safety required
-uint64_t tag_counter = 0;
+std::atomic<uint64_t> tag_counter(0);

Review comment:
       It would make a lot of sense (from a performance stand point) to have 
the tag counter be scoped to the connection in some way (as this is the 
serialisation granule of proton).
   Is it true that the delivery tags are only scoped to the sender then. So 
that different senders can use identical tags? if so we should just make this 
connection or more granularly scoped and just zero out the count when we create 
a new connection/session/sender/etc.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


> [cpp] tag_counter is not used in a thread safe way in sender.cpp
> ----------------------------------------------------------------
>
>                 Key: PROTON-2377
>                 URL: https://issues.apache.org/jira/browse/PROTON-2377
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: cpp-binding
>            Reporter: Rakhi Kumari
>            Priority: Major
>
> uint64_t tag_counter = 0 is a global variable, so it might end up giving 
> duplicate ids to different threads.
> We need to ensure that a single sender will not send a message with a 
> duplicate tag. Thread safety is required to guarantee unique tags. 
> Link to the discussion regarding this issue :
> https://github.com/apache/qpid-proton/pull/309#discussion_r615219442



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to