PKG_CHECK_MODULES(BUNDLE_DEPS REQUIRED bundle)
PKG_CHECK_MODULES(CAPI_SYSTEM_INFO_DEPS REQUIRED capi-system-info)
+PKG_CHECK_MODULES(CAPI_SYSTEM_RESOURCE_DEPS REQUIRED capi-system-resource)
PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog)
PKG_CHECK_MODULES(GIO_DEPS REQUIRED gio-2.0)
PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0)
PKG_CHECK_MODULES(GMOCK_DEPS REQUIRED gmock)
PKG_CHECK_MODULES(INIPARSER_DEPS REQUIRED iniparser)
+PKG_CHECK_MODULES(LIBSESSIOND_DEPS REQUIRED libsessiond)
PKG_CHECK_MODULES(LIBSMACK_DEPS REQUIRED libsmack)
PKG_CHECK_MODULES(LIBTZPLATFORM_CONFIG_DEPS REQUIRED libtzplatform-config)
PKG_CHECK_MODULES(LIBXML_DEPS REQUIRED libxml-2.0)
PKG_CHECK_MODULES(UUID_DEPS REQUIRED uuid)
PKG_CHECK_MODULES(VCONF_DEPS REQUIRED vconf)
PKG_CHECK_MODULES(XDGMIME_DEPS REQUIRED xdgmime)
-PKG_CHECK_MODULES(LIBSESSIOND_DEPS REQUIRED libsessiond)
## Target sources
AUX_SOURCE_DIRECTORY(src SRCS)
APPLY_PKG_CONFIG(${TARGET_AUL} PUBLIC
BUNDLE_DEPS
CAPI_SYSTEM_INFO_DEPS
+ CAPI_SYSTEM_RESOURCE_DEPS
DLOG_DEPS
GIO_DEPS
GLIB_DEPS
INIPARSER_DEPS
+ LIBSESSIOND_DEPS
LIBSMACK_DEPS
LIBTZPLATFORM_CONFIG_DEPS
LIBXML_DEPS
UUID_DEPS
VCONF_DEPS
XDGMIME_DEPS
- LIBSESSIOND_DEPS
)
INSTALL(TARGETS ${TARGET_AUL} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
Requires: tizen-platform-config
BuildRequires: cmake
-BuildRequires: pkgconfig(gio-2.0)
-BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(bundle)
-BuildRequires: pkgconfig(dlog)
-BuildRequires: xdgmime-devel, pkgconfig(xdgmime)
-BuildRequires: pkgconfig(vconf)
-BuildRequires: pkgconfig(pkgmgr-info)
BuildRequires: libattr-devel
-BuildRequires: pkgconfig(libtzplatform-config)
+BuildRequires: pkgconfig(bundle)
BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(capi-system-resource)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(gio-2.0)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(gmock)
BuildRequires: pkgconfig(iniparser)
+BuildRequires: pkgconfig(libsessiond)
+BuildRequires: pkgconfig(libsmack)
+BuildRequires: pkgconfig(libtzplatform-config)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(parcel)
+BuildRequires: pkgconfig(pkgmgr-info)
+BuildRequires: pkgconfig(pkgmgr-installer)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(storage)
BuildRequires: pkgconfig(ttrace)
-BuildRequires: pkgconfig(pkgmgr-installer)
-BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(uuid)
-BuildRequires: pkgconfig(libsmack)
-BuildRequires: pkgconfig(gmock)
-BuildRequires: pkgconfig(parcel)
-BuildRequires: pkgconfig(libsessiond)
+BuildRequires: pkgconfig(vconf)
+BuildRequires: xdgmime-devel, pkgconfig(xdgmime)
%if 0%{?gcov:1}
BuildRequires: lcov
#include "include/aul_sock.h"
+#include <cpu-boosting.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
constexpr const char PATH_AUL_SOCKET_TIMEOUT[] = "/run/aul/.socket_timeout";
constexpr const char PATH_AMD_SOCK[] = "/run/aul/daemons/.amd-sock";
int MAX_FDS = sysconf(_SC_OPEN_MAX);
+constexpr const char DEST_PROCESS[] = "amd";
// POD type
struct PacketHeader {
int opt;
};
+class CPUInheritance {
+ public:
+ CPUInheritance() {
+ int ret = resource_set_cpu_inheritance(gettid(), DEST_PROCESS, -1);
+ if (ret != 0)
+ _E("resource_set_cpu_inheritance() is failed. error(%d)", ret);
+ else
+ inherited_ = true;
+ }
+
+ ~CPUInheritance() {
+ if (inherited_) {
+ int ret = resource_clear_cpu_inheritance(gettid(), DEST_PROCESS);
+ if (ret != 0)
+ _E("resource_clear_cpu_inheritance() is failed. error(%d)", ret);
+ }
+ }
+
+ private:
+ bool inherited_ = false;
+};
+
class SocketTimeout {
public:
SocketTimeout() = default;
parcel.WriteParcelable(packet);
auto raw = parcel.GetRaw();
+ const auto& inherit = CPUInheritance();
int ret = client->Send(reinterpret_cast<void*>(&raw[0]), raw.size());
if (ret != 0 || opt & AUL_SOCK_NOREPLY) {
if (opt & AUL_SOCK_ASYNC)
static_assert(std::is_trivial<PacketHeader>(),
"Header should be POD type");
+ const auto& inherit = CPUInheritance();
*out_pkt = nullptr;
int ret = client->Receive(&header, sizeof(header));
if (ret < 0)
else
is_blocking = true;
+ const auto& inherit = CPUInheritance();
retry:
int ret = recvmsg(fd, &msg, 0);
if (ret == 0) {