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

Deepak Majeti commented on HDFS-12134:
--------------------------------------

{{include/hdfspp/locks.h}}: Remove additional variable {{finalize_}} and just 
use {{gssapiMtx}} for checks
Can we remove {{InitLocks}} method and initialize via {{options}}? This will 
prevent misuse of the API by invoking {{InitLocks}} multiple times.
 
Make {{bool _locked}} an {{std::atomic_bool _locked}}
use {{volatile}} to be safe for other Lock class fields.

{{lib/common/locks.cc}}: 51 should be {{_mtx.try_lock()}}

Thanks!

> libhdfs++: Add a synchronization interface for the GSSAPI
> ---------------------------------------------------------
>
>                 Key: HDFS-12134
>                 URL: https://issues.apache.org/jira/browse/HDFS-12134
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: hdfs-client
>            Reporter: James Clampffer
>            Assignee: James Clampffer
>         Attachments: HDFS-12134.HDFS-8707.000.patch
>
>
> Bits of the GSSAPI that Cyrus Sasl uses aren't thread safe.  There needs to 
> be a way for a client application to share a lock with this library in order 
> to prevent race conditions.  It can be done using event callbacks through the 
> C API but we can provide something more robust (RAII) in the C++ API.
> Proposed client supplied lock, pretty much the C++17 lockable concept. Use a 
> default if one isn't provided.  This would be scoped at the process level 
> since it's unlikely that multiple instances of libgssapi unless someone puts 
> some effort in with dlopen/dlsym.
> {code}
> class LockProvider
> {
>   virtual ~LockProvider() {}
>   // allow client application to deny access to the lock
>   virtual bool try_lock() = 0;
>   virtual void unlock() = 0;
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to