From 9d1776243b36a9a2645bbe586d3621dc7df94f8f Mon Sep 17 00:00:00 2001 From: "huiyu.eun" Date: Mon, 30 Jul 2018 17:36:03 +0900 Subject: [PATCH] Add thread-settings for control the thread Change-Id: I84c66a6c55d4ebe6ad407ea6128f445db6c68ac1 Signed-off-by: huiyu.eun --- build/tizen/adaptor/Makefile.am | 6 +++ build/tizen/adaptor/module.list | 4 ++ .../adaptor-framework/thread-settings.cpp | 29 ++++++++++++ dali/devel-api/adaptor-framework/thread-settings.h | 37 +++++++++++++++ dali/devel-api/file.list | 7 ++- .../common/combined-update-render-controller.cpp | 3 ++ .../thread/common/thread-settings-impl.cpp | 51 ++++++++++++++++++++ dali/internal/thread/common/thread-settings-impl.h | 55 ++++++++++++++++++++++ dali/internal/thread/file.list | 4 ++ 9 files changed, 194 insertions(+), 2 deletions(-) create mode 100644 dali/devel-api/adaptor-framework/thread-settings.cpp create mode 100755 dali/devel-api/adaptor-framework/thread-settings.h create mode 100644 dali/internal/thread/common/thread-settings-impl.cpp create mode 100644 dali/internal/thread/common/thread-settings-impl.h create mode 100644 dali/internal/thread/file.list diff --git a/build/tizen/adaptor/Makefile.am b/build/tizen/adaptor/Makefile.am index a6f050c..9c506a9 100644 --- a/build/tizen/adaptor/Makefile.am +++ b/build/tizen/adaptor/Makefile.am @@ -66,6 +66,7 @@ LIBDALI_ADAPTOR_LA_SOURCES = \ $(adaptor_video_common_src_files) \ $(adaptor_window_system_common_src_files) \ $(adaptor_trace_common_src_files) \ + $(adaptor_thread_common_src_files) \ $(adaptor_window_system_ubuntu_x11_src_files) \ $(devel_api_text_abstraction_src_files) \ $(static_libraries_glyphy_src_files) \ @@ -119,6 +120,7 @@ LIBDALI_ADAPTOR_LA_SOURCES = \ $(adaptor_window_system_tizen_src_files) \ $(adaptor_window_system_tizen_wayland_src_files) \ $(adaptor_trace_common_src_files) \ + $(adaptor_thread_common_src_files) \ $(devel_api_text_abstraction_src_files) \ $(static_libraries_glyphy_src_files) \ $(static_libraries_libunibreak_src_files) @@ -180,6 +182,7 @@ LIBDALI_ADAPTOR_LA_SOURCES = \ $(adaptor_window_system_tizen_src_files) \ $(adaptor_window_system_tizen_wayland_src_files) \ $(adaptor_trace_common_src_files) \ + $(adaptor_thread_common_src_files) \ $(devel_api_text_abstraction_src_files) \ $(static_libraries_glyphy_src_files) \ $(static_libraries_libunibreak_src_files) @@ -240,6 +243,7 @@ LIBDALI_ADAPTOR_LA_SOURCES = \ $(adaptor_window_system_tizen_src_files) \ $(adaptor_window_system_tizen_wayland_src_files) \ $(adaptor_trace_common_src_files) \ + $(adaptor_thread_common_src_files) \ $(devel_api_text_abstraction_src_files) \ $(static_libraries_glyphy_src_files) \ $(static_libraries_libunibreak_src_files) @@ -299,6 +303,7 @@ LIBDALI_ADAPTOR_LA_SOURCES = \ $(adaptor_window_system_tizen_src_files) \ $(adaptor_window_system_tizen_wayland_src_files) \ $(adaptor_trace_common_src_files) \ + $(adaptor_thread_common_src_files) \ $(devel_api_text_abstraction_src_files) \ $(static_libraries_glyphy_src_files) \ $(static_libraries_libunibreak_src_files) @@ -361,6 +366,7 @@ LIBDALI_ADAPTOR_LA_SOURCES = \ $(adaptor_window_system_tizen_src_files) \ $(adaptor_window_system_tizen_wayland_src_files) \ $(adaptor_trace_common_src_files) \ + $(adaptor_thread_common_src_files) \ $(devel_api_text_abstraction_src_files) \ $(static_libraries_glyphy_src_files) \ $(static_libraries_libunibreak_src_files) diff --git a/build/tizen/adaptor/module.list b/build/tizen/adaptor/module.list index a326b6e..f174bc1 100644 --- a/build/tizen/adaptor/module.list +++ b/build/tizen/adaptor/module.list @@ -63,6 +63,10 @@ include ../../../dali/internal/window-system/file.list adaptor_trace_dir = ../../../dali/internal/trace include ../../../dali/internal/trace/file.list +# Module: thread +adaptor_thread_dir = ../../../dali/internal/thread +include ../../../dali/internal/thread/file.list + # Module: public-api adaptor_public_api_dir = ../../../dali/public-api include ../../../dali/public-api/file.list diff --git a/dali/devel-api/adaptor-framework/thread-settings.cpp b/dali/devel-api/adaptor-framework/thread-settings.cpp new file mode 100644 index 0000000..84fc940 --- /dev/null +++ b/dali/devel-api/adaptor-framework/thread-settings.cpp @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// CLASS HEADER +#include + +// INTERNAL INCLUDES +#include + +namespace Dali +{ +void SetThreadName(const std::string& threadName) +{ + Internal::Adaptor::ThreadSettings::SetThreadName( threadName ); +} +} // namespace Dali diff --git a/dali/devel-api/adaptor-framework/thread-settings.h b/dali/devel-api/adaptor-framework/thread-settings.h new file mode 100755 index 0000000..78c63a0 --- /dev/null +++ b/dali/devel-api/adaptor-framework/thread-settings.h @@ -0,0 +1,37 @@ +#ifndef DALI_THREAD_SETTINGS_H +#define DALI_THREAD_SETTINGS_H + +/* + * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// INTERNAL INCLUDES +#include + +// EXTERNAL INCLUDES +#include + +namespace Dali +{ +/** + * @brief Set the thread name. + * + * @param [in] threadName The name of thread. The name can be up to 16 bytes long, and should be null-terminated if it contains fewer bytes. + */ +DALI_ADAPTOR_API void SetThreadName(const std::string& threadName); + +} // Dali + +#endif // DALI_THREAD_SETTINGS_H \ No newline at end of file diff --git a/dali/devel-api/file.list b/dali/devel-api/file.list index 4fc7506..db0601d 100755 --- a/dali/devel-api/file.list +++ b/dali/devel-api/file.list @@ -26,7 +26,9 @@ devel_api_src_files = \ $(adaptor_devel_api_dir)/adaptor-framework/tilt-sensor.cpp \ $(adaptor_devel_api_dir)/adaptor-framework/lifecycle-controller.cpp \ $(adaptor_devel_api_dir)/adaptor-framework/video-player.cpp \ - $(adaptor_devel_api_dir)/adaptor-framework/virtual-keyboard.cpp + $(adaptor_devel_api_dir)/adaptor-framework/virtual-keyboard.cpp \ + $(adaptor_devel_api_dir)/adaptor-framework/thread-settings.cpp + devel_api_adaptor_framework_header_files = \ @@ -63,7 +65,8 @@ devel_api_adaptor_framework_header_files = \ $(adaptor_devel_api_dir)/adaptor-framework/key-extension-plugin.h \ $(adaptor_devel_api_dir)/adaptor-framework/virtual-keyboard.h \ $(adaptor_devel_api_dir)/adaptor-framework/physical-keyboard.h \ - $(adaptor_devel_api_dir)/adaptor-framework/key-devel.h + $(adaptor_devel_api_dir)/adaptor-framework/key-devel.h \ + $(adaptor_devel_api_dir)/adaptor-framework/thread-settings.h devel_api_text_abstraction_src_files = \ $(adaptor_devel_api_dir)/text-abstraction/bidirectional-support.cpp \ diff --git a/dali/internal/adaptor/common/combined-update-render-controller.cpp b/dali/internal/adaptor/common/combined-update-render-controller.cpp index eb59399..72aa9da 100644 --- a/dali/internal/adaptor/common/combined-update-render-controller.cpp +++ b/dali/internal/adaptor/common/combined-update-render-controller.cpp @@ -28,6 +28,7 @@ #include #include #include +#include namespace Dali { @@ -374,6 +375,8 @@ void CombinedUpdateRenderController::ProcessSleepRequest() void CombinedUpdateRenderController::UpdateRenderThread() { + SetThreadName("RenderThread\0"); + // Install a function for logging mEnvironmentOptions.InstallLogFunction(); diff --git a/dali/internal/thread/common/thread-settings-impl.cpp b/dali/internal/thread/common/thread-settings-impl.cpp new file mode 100644 index 0000000..849cb4d --- /dev/null +++ b/dali/internal/thread/common/thread-settings-impl.cpp @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// CLASS HEADER +#include + +// INTERNAL INCLUDES +#include + +namespace Dali +{ + +namespace Internal +{ + +namespace Adaptor +{ + +namespace ThreadSettings +{ + +void SetThreadName(const std::string& threadName) +{ + int err = prctl(PR_SET_NAME, threadName.c_str()); + if ( err ) + { + DALI_LOG_ERROR( "prctl(PR_SET_NAME, %s) failed\n", threadName.c_str() ); + } +} + +} // namespace ThreadSettings + +} // namespace Adaptor + +} // namespace Internal + +} // namespace Dali diff --git a/dali/internal/thread/common/thread-settings-impl.h b/dali/internal/thread/common/thread-settings-impl.h new file mode 100644 index 0000000..2766982 --- /dev/null +++ b/dali/internal/thread/common/thread-settings-impl.h @@ -0,0 +1,55 @@ +#ifndef __DALI_INTERNAL_THREAD_SETTINGS_H__ +#define __DALI_INTERNAL_THREAD_SETTINGS_H__ + +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// EXTERNAL INCLUDES +#include +#include + +namespace Dali +{ + +namespace Internal +{ + +namespace Adaptor +{ + +/** + * Implementation of the Thread Settings + */ +namespace ThreadSettings +{ + +/** + * @brief Set the thread name. + * + * @param [in] threadName The name of thread. The name can be up to 16 bytes long, and should be null-terminated if it contains fewer bytes. + */ +void SetThreadName(const std::string& threadName); + +} // namespace ThreadSettings + +} // namespace Adaptor + +} // namespace Internal + +} // namespace Dali + +#endif // __DALI_INTERNAL_THREAD_SETTINGS_H__ diff --git a/dali/internal/thread/file.list b/dali/internal/thread/file.list new file mode 100644 index 0000000..7daaf03 --- /dev/null +++ b/dali/internal/thread/file.list @@ -0,0 +1,4 @@ +# module: trace, backend: common +adaptor_thread_common_src_files=\ + ${adaptor_thread_dir}/common/thread-settings-impl.cpp + -- 2.7.4