diff --git a/src/core/lib/event_engine/posix_engine/posix_endpoint.h b/src/core/lib/event_engine/posix_engine/posix_endpoint.h index 3ccc0e5f55d9f..c04c46c1cd299 100644 --- a/src/core/lib/event_engine/posix_engine/posix_endpoint.h +++ b/src/core/lib/event_engine/posix_engine/posix_endpoint.h @@ -656,16 +656,16 @@ class PosixEndpoint : public PosixEndpointWithFdSupport { impl_->MaybeShutdown(absl::FailedPreconditionError("Endpoint closing"), [on_release = std::move(on_release_fd), poller](absl::StatusOr fd) mutable { - if (fd.ok()) { - auto locked_fd = - poller->GetSystemApi()->Lock(*fd); - if (!locked_fd.ok()) { - on_release(std::move(locked_fd).status()); - } - on_release(locked_fd->fd()); - } else { + if (!fd.ok()) { on_release(std::move(fd).status()); + return; } + auto locked_fd = poller->GetSystemApi()->Lock(*fd); + if (!locked_fd.ok()) { + on_release(std::move(locked_fd).status()); + return; + } + on_release(locked_fd->fd()); }); } } diff --git a/src/core/lib/event_engine/posix_engine/posix_system_api.cc b/src/core/lib/event_engine/posix_engine/posix_system_api.cc index a26813b7ab951..0da16aede9bf0 100644 --- a/src/core/lib/event_engine/posix_engine/posix_system_api.cc +++ b/src/core/lib/event_engine/posix_engine/posix_system_api.cc @@ -63,17 +63,21 @@ namespace { class LocksState { public: void Lock(const SystemApi* system_api, int fd) { +#ifdef GPR_ABSEIL_SYNC if (++counters_[system_api] == 1) { system_api->ReaderLock(); } LOG_EVERY_N(INFO, 10) << "Locks: " << counters_[system_api]; +#endif } void Unlock(const SystemApi* system_api, int fd) { +#ifdef GPR_ABSEIL_SYNC CHECK_GE(counters_[system_api], 0); if (--counters_[system_api] == 0) { system_api->ReaderUnlock(); } +#endif } private: diff --git a/test/core/event_engine/posix/posix_system_api_test.cc b/test/core/event_engine/posix/posix_system_api_test.cc index 73b8f32919051..6be5dff6969ec 100644 --- a/test/core/event_engine/posix/posix_system_api_test.cc +++ b/test/core/event_engine/posix/posix_system_api_test.cc @@ -204,7 +204,7 @@ TEST(PosixSystemApiTest, PosixLevel) { ::testing::ElementsAreArray(buf)); } -TEST(PosixSystemApiTest, DISABLED_Incomplete_EventEndpointLevel) { +TEST(PosixSystemApiTest, DISABLED_IncompleteEventEndpointLevel) { std::string target_addr = absl::StrCat( "ipv6:[::1]:", std::to_string(grpc_pick_unused_port_or_die())); auto address = URIToResolvedAddress(target_addr);