diff options
author | 2018-08-28 12:55:40 -0700 | |
---|---|---|
committer | 2018-08-28 12:55:40 -0700 | |
commit | 6076b1d7982b4d0778dd68c236075b5c36b72e0d (patch) | |
tree | 1da2c80065a6844ca0480bd83217792cc3185886 /src/core/lib/gprpp/mutex_lock.h | |
parent | 3f002567c4c1f8cc7542aeee2d60d6d0c4c5dd54 (diff) | |
parent | 4b5b019d5644affef122e06c6898811286850b8d (diff) |
Merge branch 'channelz-subchannels' into channelz-server
Diffstat (limited to 'src/core/lib/gprpp/mutex_lock.h')
-rw-r--r-- | src/core/lib/gprpp/mutex_lock.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/core/lib/gprpp/mutex_lock.h b/src/core/lib/gprpp/mutex_lock.h new file mode 100644 index 0000000000..54751d5fe4 --- /dev/null +++ b/src/core/lib/gprpp/mutex_lock.h @@ -0,0 +1,42 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef GRPC_CORE_LIB_GPRPP_MUTEX_LOCK_H +#define GRPC_CORE_LIB_GPRPP_MUTEX_LOCK_H + +#include <grpc/support/port_platform.h> + +#include <grpc/support/sync.h> + +namespace grpc_core { + +class MutexLock { + public: + explicit MutexLock(gpr_mu* mu) : mu_(mu) { gpr_mu_lock(mu); } + ~MutexLock() { gpr_mu_unlock(mu_); } + + MutexLock(const MutexLock&) = delete; + MutexLock& operator=(const MutexLock&) = delete; + + private: + gpr_mu* const mu_; +}; + +} // namespace grpc_core + +#endif /* GRPC_CORE_LIB_GPRPP_MUTEX_LOCK_H */ |