summaryrefslogtreecommitdiff
path: root/grpc/src/core/lib/channel/handshaker.cc
diff options
context:
space:
mode:
Diffstat (limited to 'grpc/src/core/lib/channel/handshaker.cc')
-rw-r--r--grpc/src/core/lib/channel/handshaker.cc59
1 files changed, 9 insertions, 50 deletions
diff --git a/grpc/src/core/lib/channel/handshaker.cc b/grpc/src/core/lib/channel/handshaker.cc
index 8d1d45e5..632d2864 100644
--- a/grpc/src/core/lib/channel/handshaker.cc
+++ b/grpc/src/core/lib/channel/handshaker.cc
@@ -53,45 +53,7 @@ std::string HandshakerArgsString(HandshakerArgs* args) {
} // namespace
-HandshakeManager::HandshakeManager() { gpr_mu_init(&mu_); }
-
-/// Add \a mgr to the server side list of all pending handshake managers, the
-/// list starts with \a *head.
-// Not thread-safe. Caller needs to synchronize.
-void HandshakeManager::AddToPendingMgrList(HandshakeManager** head) {
- GPR_ASSERT(prev_ == nullptr);
- GPR_ASSERT(next_ == nullptr);
- next_ = *head;
- if (*head) {
- (*head)->prev_ = this;
- }
- *head = this;
-}
-
-/// Remove \a mgr from the server side list of all pending handshake managers.
-// Not thread-safe. Caller needs to synchronize.
-void HandshakeManager::RemoveFromPendingMgrList(HandshakeManager** head) {
- if (next_ != nullptr) {
- next_->prev_ = prev_;
- }
- if (prev_ != nullptr) {
- prev_->next_ = next_;
- } else {
- GPR_ASSERT(*head == this);
- *head = next_;
- }
-}
-
-/// Shutdown all pending handshake managers starting at head on the server
-/// side. Not thread-safe. Caller needs to synchronize.
-void HandshakeManager::ShutdownAllPending(grpc_error* why) {
- auto* head = this;
- while (head != nullptr) {
- head->Shutdown(GRPC_ERROR_REF(why));
- head = head->next_;
- }
- GRPC_ERROR_UNREF(why);
-}
+HandshakeManager::HandshakeManager() {}
void HandshakeManager::Add(RefCountedPtr<Handshaker> handshaker) {
if (GRPC_TRACE_FLAG_ENABLED(grpc_handshaker_trace)) {
@@ -104,12 +66,9 @@ void HandshakeManager::Add(RefCountedPtr<Handshaker> handshaker) {
handshakers_.push_back(std::move(handshaker));
}
-HandshakeManager::~HandshakeManager() {
- handshakers_.clear();
- gpr_mu_destroy(&mu_);
-}
+HandshakeManager::~HandshakeManager() { handshakers_.clear(); }
-void HandshakeManager::Shutdown(grpc_error* why) {
+void HandshakeManager::Shutdown(grpc_error_handle why) {
{
MutexLock lock(&mu_);
// Shutdown the handshaker that's currently in progress, if any.
@@ -124,12 +83,12 @@ void HandshakeManager::Shutdown(grpc_error* why) {
// Helper function to call either the next handshaker or the
// on_handshake_done callback.
// Returns true if we've scheduled the on_handshake_done callback.
-bool HandshakeManager::CallNextHandshakerLocked(grpc_error* error) {
+bool HandshakeManager::CallNextHandshakerLocked(grpc_error_handle error) {
if (GRPC_TRACE_FLAG_ENABLED(grpc_handshaker_trace)) {
gpr_log(GPR_INFO,
"handshake_manager %p: error=%s shutdown=%d index=%" PRIuPTR
", args=%s",
- this, grpc_error_string(error), is_shutdown_, index_,
+ this, grpc_error_std_string(error).c_str(), is_shutdown_, index_,
HandshakerArgsString(&args_).c_str());
}
GPR_ASSERT(index_ <= handshakers_.size());
@@ -162,7 +121,7 @@ bool HandshakeManager::CallNextHandshakerLocked(grpc_error* error) {
gpr_log(GPR_INFO,
"handshake_manager %p: handshaking complete -- scheduling "
"on_handshake_done with error=%s",
- this, grpc_error_string(error));
+ this, grpc_error_std_string(error).c_str());
}
// Cancel deadline timer, since we're invoking the on_handshake_done
// callback now.
@@ -183,7 +142,8 @@ bool HandshakeManager::CallNextHandshakerLocked(grpc_error* error) {
return is_shutdown_;
}
-void HandshakeManager::CallNextHandshakerFn(void* arg, grpc_error* error) {
+void HandshakeManager::CallNextHandshakerFn(void* arg,
+ grpc_error_handle error) {
auto* mgr = static_cast<HandshakeManager*>(arg);
bool done;
{
@@ -198,7 +158,7 @@ void HandshakeManager::CallNextHandshakerFn(void* arg, grpc_error* error) {
}
}
-void HandshakeManager::OnTimeoutFn(void* arg, grpc_error* error) {
+void HandshakeManager::OnTimeoutFn(void* arg, grpc_error_handle error) {
auto* mgr = static_cast<HandshakeManager*>(arg);
if (error == GRPC_ERROR_NONE) { // Timer fired, rather than being cancelled
mgr->Shutdown(GRPC_ERROR_CREATE_FROM_STATIC_STRING("Handshake timed out"));
@@ -216,7 +176,6 @@ void HandshakeManager::DoHandshake(grpc_endpoint* endpoint,
{
MutexLock lock(&mu_);
GPR_ASSERT(index_ == 0);
- GPR_ASSERT(!is_shutdown_);
// Construct handshaker args. These will be passed through all
// handshakers and eventually be freed by the on_handshake_done callback.
args_.endpoint = endpoint;