roberts added inline comments. INLINE COMMENTS
> plasmawindowmanagement.cpp:489 > + n = QT_READ(fd, buf, sizeof buf); > + if (n == -1 && (errno == EAGAIN) && ++retryCount < 1000) { > + usleep(1000); EAGAIN comes from reads of O_NONBLOCK fd's, but this seems to be a blocking pipe (no calls to fcntl() or pipe2()). As such the read call could block the thread for significant or unbounded time - depending on whether QT_READ swallows EINTR - if the other side of the pipe failed to close the fd. > plasmawindowmanagement.cpp:516 > + if (readData(pipeFd, content) != 0) { > + return QIcon::fromTheme(QStringLiteral("wayland")); > + } pipeFd could leak here. > plasmawindowmanagement_interface.cpp:406 > + QDataStream ds(&file); > + ds << p->m_icon; > + file.close(); Is there anything protecting this from being unsynchronised parallel access to m_icon (and p)? Simplest solution might be passing the icon by value into the lambda. REPOSITORY rKWAYLAND KWayland REVISION DETAIL https://phabricator.kde.org/D3049 EMAIL PREFERENCES https://phabricator.kde.org/settings/panel/emailpreferences/ To: graesslin, #plasma_on_wayland, hein Cc: roberts, plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas