Loading libs/binder/RpcTransportTipcAndroid.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -63,12 +63,14 @@ public: if (pfd.revents & POLLERR) { return DEAD_OBJECT; } if (pfd.revents & POLLHUP) { return DEAD_OBJECT; } if (pfd.revents & POLLIN) { // Copied from FdTrigger.cpp: Even though POLLHUP may also be set, // treat it as a success condition to ensure data is drained. return OK; } if (pfd.revents & POLLHUP) { return DEAD_OBJECT; } return WOULD_BLOCK; } Loading libs/binder/trusty/RpcTransportTipcTrusty.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -239,6 +239,12 @@ private: } if (!(uevt.event & IPC_HANDLE_POLL_MSG)) { /* No message, terminate here and leave mHaveMessage false */ if (uevt.event & IPC_HANDLE_POLL_HUP) { // Peer closed the connection. We need to preserve the order // between MSG and HUP from FdTrigger.cpp, which means that // getting MSG&HUP should return OK instead of DEAD_OBJECT. return DEAD_OBJECT; } return OK; } Loading Loading
libs/binder/RpcTransportTipcAndroid.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -63,12 +63,14 @@ public: if (pfd.revents & POLLERR) { return DEAD_OBJECT; } if (pfd.revents & POLLHUP) { return DEAD_OBJECT; } if (pfd.revents & POLLIN) { // Copied from FdTrigger.cpp: Even though POLLHUP may also be set, // treat it as a success condition to ensure data is drained. return OK; } if (pfd.revents & POLLHUP) { return DEAD_OBJECT; } return WOULD_BLOCK; } Loading
libs/binder/trusty/RpcTransportTipcTrusty.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -239,6 +239,12 @@ private: } if (!(uevt.event & IPC_HANDLE_POLL_MSG)) { /* No message, terminate here and leave mHaveMessage false */ if (uevt.event & IPC_HANDLE_POLL_HUP) { // Peer closed the connection. We need to preserve the order // between MSG and HUP from FdTrigger.cpp, which means that // getting MSG&HUP should return OK instead of DEAD_OBJECT. return DEAD_OBJECT; } return OK; } Loading