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

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_r618556498



##########
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:
       To be clear if we can make the tag counter scoped to the connection or 
lower then we don't need any thread synchronisation at all. This is because it 
is an underlying assumption in proton that a connection can only be processed 
on a single thread at a time.




-- 
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