You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Bud Bundy (JIRA)" <ji...@apache.org> on 2012/11/07 17:07:13 UTC

[jira] [Commented] (THRIFT-1748) Guard and RWGuard macros defined in global namespace

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

Bud Bundy commented on THRIFT-1748:
-----------------------------------

{code}
Index: Mutex.h
===================================================================
--- Mutex.h	(revision 1406661)
+++ Mutex.h	(working copy)
@@ -183,15 +183,6 @@
     const ReadWriteMutex& rw_mutex_;
 };
 
-
-// A little hack to prevent someone from trying to do "Guard(m);"
-// Such a use is invalid because the temporary Guard object is
-// destroyed at the end of the line, releasing the lock.
-// Sorry for polluting the global namespace, but I think it's worth it.
-#define Guard(m) incorrect_use_of_Guard(m)
-#define RWGuard(m) incorrect_use_of_RWGuard(m)
-
-
 }}} // apache::thrift::concurrency
 
 #endif // #ifndef _THRIFT_CONCURRENCY_MUTEX_H_
{code}
                
> Guard and RWGuard macros defined in global namespace
> ----------------------------------------------------
>
>                 Key: THRIFT-1748
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1748
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.9
>         Environment: Visual Studio 2010
>            Reporter: Bud Bundy
>            Priority: Trivial
>              Labels: newbie, patch
>
> thrift/concurrency/Mutex.h defines global macros Guard and RWGuard.  Although the purpose is well commented and appreciated - i.e. trying to prevent coders from creating temporary variables and falsely assuming they have a lock - this code does interfere with other packages that define their own Guard classes.  Even when the user/library define Guard in their own namespace, there's a clash.
> Please remove the macros.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira