Use generic libpdx event bits facility in libvrflinger and bufferhubd.
Use the generic event bits abstraction to support UDS and ServiceFS
backends properly.
Bug: 34466748
Test: start/stop basicvr repeatedly; observe stable bufferhub counts.
Change-Id: I9f2ea67c25860ad7fb931938991a29a37f3391fc
diff --git a/services/vr/bufferhubd/buffer_hub.cpp b/services/vr/bufferhubd/buffer_hub.cpp
index 12243dc..0906476 100644
--- a/services/vr/bufferhubd/buffer_hub.cpp
+++ b/services/vr/bufferhubd/buffer_hub.cpp
@@ -108,6 +108,7 @@
// consumer_count is tracked by producer. When it's zero, producer must
// have already hung up and the consumer is orphaned.
stream << std::setw(14) << "Orphaned.";
+ stream << (" channel_id=" + std::to_string(channel->channel_id()));
stream << std::endl;
continue;
}
@@ -433,6 +434,9 @@
void BufferHubChannel::SignalAvailable() {
ATRACE_NAME("BufferHubChannel::SignalAvailable");
+ ALOGD_IF(TRACE,
+ "BufferHubChannel::SignalAvailable: channel_id=%d buffer_id=%d",
+ channel_id(), buffer_id());
if (!IsDetached()) {
const int ret = service_->ModifyChannelEvents(channel_id_, 0, POLLIN);
ALOGE_IF(ret < 0,
@@ -446,6 +450,9 @@
void BufferHubChannel::ClearAvailable() {
ATRACE_NAME("BufferHubChannel::ClearAvailable");
+ ALOGD_IF(TRACE,
+ "BufferHubChannel::ClearAvailable: channel_id=%d buffer_id=%d",
+ channel_id(), buffer_id());
if (!IsDetached()) {
const int ret = service_->ModifyChannelEvents(channel_id_, POLLIN, 0);
ALOGE_IF(ret < 0,
@@ -459,6 +466,8 @@
void BufferHubChannel::Hangup() {
ATRACE_NAME("BufferHubChannel::Hangup");
+ ALOGD_IF(TRACE, "BufferHubChannel::Hangup: channel_id=%d buffer_id=%d",
+ channel_id(), buffer_id());
if (!IsDetached()) {
const int ret = service_->ModifyChannelEvents(channel_id_, 0, POLLHUP);
ALOGE_IF(