[Ace-users] [ciao-users] DomainApplicationManager_AMI_Impl + Race Condition?
Johnny Willemsen
jwillemsen at remedy.nl
Wed Oct 24 13:02:25 CDT 2007
Hi,
Thanks for using the PRF form. I agree with your comments, can you make the
changes?
Johnny
"Sowayan, Abdullah (N-DUA)" <abdullah.sowayan at lmco.com> wrote in message
news:<mailman.2637.1193244787.5286.ciao-users at mail.cse.wustl.edu>...
> CIAO VERSION: 0.6.1 (SVN HEAD Also)
>
> In the following file:
> CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.h
>
> class DomainApplicationManager_Export DomainApplicationManager_AMI_Impl
> : public DomainApplicationManager_AMH_Impl
> {
> /// AMI reply count
> volatile int start_launch_reply_count_;
> };
>
> Why is the counter volatile? Is this an attempt to eliminate race
> conditions when the variable is accessed concurrentl? If so, the I'd
> have to note that volatile doesn't protect aginst concurrent access, we
> should use ACE_Atomic_Op<ACE_Thread_Mutex, long> instead (on certain
> platforms, this construct does not incur the price of a mutex lock,
> because it expands to assembly code with automic instructions).
>
>
>
> These following method implementations (found in the CPP file) use the
> counter variable. They should be placed in an inline file (*.inl)
> because that's to convention we use in the distribution for non-virtual
> methods that only have 1-3 lines of code.
>
> void
> CIAO::DomainApplicationManager_AMI_Impl::
> decrease_start_launch_reply_count ()
> {
> --this ->start_launch_reply_count_;
> }
>
> int
> CIAO::DomainApplicationManager_AMI_Impl::
> start_launch_reply_count ()
> {
> return this->start_launch_reply_count_;
> }
>
> Thanks,
> Abdul
>
More information about the Ace-users
mailing list