Skip to content

Commit

Permalink
boost thread pool joins itself
Browse files Browse the repository at this point in the history
  • Loading branch information
Ravi Nagarjun Akella authored and Ravi Nagarjun Akella committed Jul 18, 2024
1 parent 291f805 commit c61ef5a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 58 deletions.
89 changes: 32 additions & 57 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

required_conan_version = ">=1.60.0"


class NuRaftMesgConan(ConanFile):
name = "nuraft_mesg"
version = "3.5.4"
Expand All @@ -22,25 +21,25 @@ class NuRaftMesgConan(ConanFile):
settings = "arch", "os", "compiler", "build_type"

options = {
"shared": ["True", "False"],
"fPIC": ["True", "False"],
"coverage": ["True", "False"],
"sanitize": ["True", "False"],
}
"shared": ['True', 'False'],
"fPIC": ['True', 'False'],
"coverage": ['True', 'False'],
"sanitize": ['True', 'False'],
}
default_options = {
"shared": False,
"fPIC": True,
"coverage": False,
"sanitize": False,
}
'shared': False,
'fPIC': True,
'coverage': False,
'sanitize': False,
}

exports_sources = (
"LICENSE",
"CMakeLists.txt",
"cmake/*",
"include/*",
"src/*",
)
"LICENSE",
"CMakeLists.txt",
"cmake/*",
"include/*",
"src/*",
)

def _min_cppstd(self):
return 20
Expand All @@ -54,14 +53,10 @@ def configure(self):
self.options.rm_safe("fPIC")
if self.settings.build_type == "Debug":
if self.options.coverage and self.options.sanitize:
raise ConanInvalidConfiguration(
"Sanitizer does not work with Code Coverage!"
)
raise ConanInvalidConfiguration("Sanitizer does not work with Code Coverage!")
if self.conf.get("tools.build:skip_test", default=False):
if self.options.coverage or self.options.sanitize:
raise ConanInvalidConfiguration(
"Coverage/Sanitizer requires Testing!"
)
raise ConanInvalidConfiguration("Coverage/Sanitizer requires Testing!")

def build_requirements(self):
if not self.conf.get("tools.build:skip_test", default=False):
Expand All @@ -71,9 +66,7 @@ def build_requirements(self):

def requirements(self):
self.requires("boost/1.83.0", transitive_headers=True)
self.requires(
"sisl/[~12.2, include_prerelease=True]@oss/master", transitive_headers=True
)
self.requires("sisl/[~12.2, include_prerelease=True]@oss/master", transitive_headers=True)
self.requires("nuraft/2.4.0", transitive_headers=True)

def layout(self):
Expand All @@ -88,9 +81,9 @@ def generate(self):
tc.variables["PACKAGE_VERSION"] = self.version
if self.settings.build_type == "Debug":
if self.options.get_safe("coverage"):
tc.variables["BUILD_COVERAGE"] = "ON"
tc.variables['BUILD_COVERAGE'] = 'ON'
elif self.options.get_safe("sanitize"):
tc.variables["MEMORY_SANITIZER_ON"] = "ON"
tc.variables['MEMORY_SANITIZER_ON'] = 'ON'
tc.generate()

# This generates "boost-config.cmake" and "grpc-config.cmake" etc in self.generators_folder
Expand All @@ -106,44 +99,26 @@ def build(self):

def package(self):
lib_dir = join(self.package_folder, "lib")
copy(
self,
"LICENSE",
self.source_folder,
join(self.package_folder, "licenses"),
keep_path=False,
)
copy(
self,
"*.h*",
join(self.source_folder, "include"),
join(self.package_folder, "include"),
keep_path=True,
)
copy(self, "LICENSE", self.source_folder, join(self.package_folder, "licenses"), keep_path=False)
copy(self, "*.h*", join(self.source_folder, "include"), join(self.package_folder, "include"), keep_path=True)
copy(self, "*.lib", self.build_folder, lib_dir, keep_path=False)
copy(self, "*.a", self.build_folder, lib_dir, keep_path=False)
copy(self, "*.so*", self.build_folder, lib_dir, keep_path=False)
copy(self, "*.dylib*", self.build_folder, lib_dir, keep_path=False)
copy(
self,
"*.dll*",
self.build_folder,
join(self.package_folder, "bin"),
keep_path=False,
)
copy(self, "*.dll*", self.build_folder, join(self.package_folder, "bin"), keep_path=False)
copy(self, "*.so*", self.build_folder, lib_dir, keep_path=False)

def package_info(self):
self.cpp_info.components["proto"].libs = ["nuraft_mesg", "nuraft_mesg_proto"]
self.cpp_info.components["proto"].set_property(
"pkg_config_name", "libnuraft_mesg_proto"
)
self.cpp_info.components["proto"].requires.extend(
["nuraft::nuraft", "boost::boost", "sisl::sisl"]
)
self.cpp_info.components["proto"].set_property("pkg_config_name", "libnuraft_mesg_proto")
self.cpp_info.components["proto"].requires.extend([
"nuraft::nuraft",
"boost::boost",
"sisl::sisl"
])

for component in self.cpp_info.components.values():
if self.options.get_safe("sanitize"):
if self.options.get_safe("sanitize"):
component.sharedlinkflags.append("-fsanitize=address")
component.exelinkflags.append("-fsanitize=address")
component.sharedlinkflags.append("-fsanitize=undefined")
Expand All @@ -152,4 +127,4 @@ def package_info(self):
self.cpp_info.set_property("cmake_file_name", "NuraftMesg")
self.cpp_info.set_property("cmake_target_name", "NuraftMesg::NuraftMesg")
self.cpp_info.names["cmake_find_package"] = "NuraftMesg"
self.cpp_info.names["cmake_find_package_multi"] = "NuraftMesg"
self.cpp_info.names["cmake_find_package_multi"] = "NuraftMesg"
1 change: 0 additions & 1 deletion src/proto/proto_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ class proto_service : public msg_service {
msg_service(std::forward< Args >(args)...),
_raft_thread_pool{NURAFT_MESG_CONFIG(raft_append_entries_thread_cnt)} {}

virtual ~proto_service() { _raft_thread_pool.join(); }
void associate(sisl::GrpcServer* server) override;
void bind(sisl::GrpcServer* server) override;

Expand Down

0 comments on commit c61ef5a

Please sign in to comment.