Commit Graph

525 Commits

Author SHA1 Message Date
Ion Gaztañaga
755dcbe5ba Fix timepoint_to_timespec bug for std/boost chrono timepoints 2024-01-12 13:36:25 +01:00
Ion Gaztañaga
bbdcf1bea4 Add assertions in thread joining functions to catch errors. 2024-01-12 13:34:56 +01:00
Ion Gaztañaga
4f78ee0cc2 Remove unneeded functions 2024-01-12 13:34:27 +01:00
Ion Gaztañaga
9eeb075089 Add a more robust nanosleep use taking EINTR into account 2024-01-09 02:04:22 +01:00
Ion Gaztañaga
f052680461 Make synchronization primitive tests more granular on timeouts, from seconds to miliseconds precission for Base Times. This should reduce CI times. 2024-01-09 00:42:22 +01:00
Ion Gaztañaga
38a03cc08c Fix broken C+03 support 2024-01-05 13:17:32 +01:00
Ion Gaztañaga
f3de4e90e7 Merge pull request #188 from eagleoflqj/emscripten-shm
Fix: emscripten doesn't support shm
2023-04-24 13:00:40 +02:00
Ion Gaztañaga
b55f26b39c Use official boost unordered_map header. 2023-04-24 12:56:06 +02:00
Ion Gaztañaga
33bc2635fd Simplify in_place_interface and avoid aliasing in reference-passed "constructed" argument. 2023-04-20 22:18:52 +02:00
Ion Gaztañaga
bd860e1d6d Fixes #195 ("namespace conflict on constructing objects in segment manager with named proxy in combination with boost geometry") 2023-04-20 20:30:13 +02:00
Ion Gaztañaga
2dda014685 Disable forceinline with Clang, see https://github.com/llvm/llvm-project/issues/62202 2023-04-18 22:26:28 +02:00
Ion Gaztañaga
a0c5a8ff17 Remove dead files from repo 2023-02-20 15:54:05 +01:00
Ion Gaztañaga
d578251c71 Add missing <boost/static_assert.hpp> includes 2023-02-16 20:31:42 +01:00
Qijia Liu
94ead3e59d emscripten doesn't support shm 2022-12-24 11:29:55 -05:00
Ion Gaztañaga
41018201d6 Fixes #174 ("shared_memory_object constructor may fail on macOS") 2022-07-17 00:28:23 +02:00
Ion Gaztañaga
a5fcf817ab Fixes #181 ("clang-8 warning: result of comparison of constant 'K' with expression of type 'std::size_t' (...) is always false") 2022-07-16 22:28:50 +02:00
lior izrael
f1ecdcf789 remove redundent assertion alignment check to avoid exiting the function without releasing scoped mutex 2022-06-13 15:49:05 +03:00
Ion Gaztañaga
c4a046793e Fixes #166 ("Bad error handling in shared_memory_object::truncate") 2022-03-07 13:55:01 +01:00
Yohann Bénédic
7c736150fb Fixing windows_shared_memory::get_name()
Instead of returning a null pointer, `get_name()` either returns the expected value in case a narrow filename was provided or an empty string otherwise.
2022-02-28 12:55:43 +01:00
Ion Gaztañaga
245f97fc02 Increase minimum version for forceinline usage in MSVC as bad code generation was detected in some cases 2022-01-04 00:24:44 +01:00
Ion Gaztañaga
00b66938e8 Activate BOOST_MOVE_FORCEINLINE with GCC > 5, since some code generation problems were detected in tests executed under MingW. 2022-01-02 00:27:51 +01:00
Ion Gaztañaga
3992b523d0 Simplify rbtree insertion/deletions as there were some unhandled corner cases and it's not performance sensitive code 2021-12-31 13:32:42 +01:00
Ion Gaztañaga
e147018ba9 Silence false positive warning in very few GCC versions, only in release -O3 (as offset_ptr is always initialized in all constructors) 2021-12-31 13:31:46 +01:00
Ion Gaztañaga
a3c27fff1f Fix potential out of bounds write warning for GCC 2021-12-30 12:51:04 +01:00
Ion Gaztañaga
d8ae15ec2d Fix -Wshadow warnings 2021-12-30 12:50:04 +01:00
Ion Gaztañaga
8322bae2f6 Remove GCC's -Wcast-align=strict warnings 2021-12-28 17:11:05 +01:00
Ion Gaztañaga
2e6b8c0d9d Fix -Wshadow warning 2021-12-27 14:41:30 +01:00
Ion Gaztañaga
55ad499dc4 Fixes #160 ("More GCC suggest-override warnings"). 2021-12-27 00:26:54 +01:00
Leonardo Neumann
de657e0163 Fix missing sys/stat.h include on musl-based systems
Boost 1.78.0 fails to build on musl-based systems because musl does
not include sys/stat.h by default.

Fixes #161 ("Boost compiler error")
2021-12-13 01:10:46 -03:00
Ion Gaztañaga
85786848f0 Separate a special function for creating shared folders as permissions and logic is different from normal folder open/create logic in Unix 2021-11-09 00:54:26 +01:00
Ion Gaztañaga
aea16e77c8 Correct mode_t constant, it should be octal. 2021-11-08 08:38:01 +01:00
Ion Gaztañaga
8f1dbc7d01 Merge pull request #158 from Helflym/develop
atomic.hpp: adapt headers to AIX assembler
2021-11-07 21:27:45 +01:00
Ion Gaztañaga
7a743c6853 Fixes #157 ("Set sticky bit on shared interprocess folder") 2021-11-07 21:11:40 +01:00
Clément Chigot
930cd23f55 atomic.hpp: adapt headers to AIX assembler
AIX assembler doesn't allow "bne- 1b" or "bne- 1f" symtax to jump to a
given label. It must be replaced by "bne- $N", N being the memory
offset between the current instruction and the targeted label.
2021-10-28 16:16:06 +02:00
Ion Gaztañaga
efc75031f5 Support Clang's -Wconversion -Wfloat-conversion -Wsign-conversion with -Werror 2021-10-20 00:18:59 +02:00
Ion Gaztañaga
3b5da7b0c1 Support GCC's -Wconversion -Wfloat-conversion -Warith-conversion -Wsign-conversion warnings. 2021-10-16 17:46:01 +02:00
Ion Gaztañaga
8fd6261f62 Support C++20 allocator<void>, which might not have "::pointer" type 2021-09-24 22:17:35 +02:00
Ion Gaztañaga
af0c934000 Fixes #154 ("shared_memory_object::truncate() fails on AIX") 2021-09-24 19:04:28 +02:00
Antony Polukhin
122f69aa00 properly initilize enable_shared_from_this if the type is const 2021-09-24 14:26:24 +03:00
Ion Gaztañaga
e4259fe168 Timeout support for managed memory segments. Adding BOOST_INTERPROCESS_MANAGED_OPEN_OR_CREATE_INITIALIZE_MAX_TRIES/BOOST_INTERPROCESS_MANAGED_OPEN_OR_CREATE_INITIALIZE_TIMEOUT_SEC configurable parameters.
Fixes #128 ("Infinite loop in managed_open_or_create_impl.hpp")

Fixes #130 ("infinite loop in managed_open_or_create_impl.hpp if filesize is 0")
2021-08-24 14:57:59 +02:00
Ion Gaztañaga
4f0b3c2c93 Fixes #103 ("Use interprocess headers without exception handling") 2021-08-23 13:32:08 +02:00
Ion Gaztañaga
7c8893788d Fixes #65 ("Robustness of the interprocess mutex") and fixes #67 ("Changed to use posix robust mutex"). 2021-08-22 00:31:16 +02:00
Ion Gaztañaga
512f95cb07 Implements standard C++ mutex/condition variable requirements for Interprocess utilities.
Fixes #149 ("interprocess_condition_any::timed_wait update")
2021-08-19 00:38:24 +02:00
Ion Gaztañaga
9ac7eb3d84 Fixes #145 ("1.76 now requires unicode paths on windows") 2021-08-12 01:41:26 +02:00
Ion Gaztañaga
c3dee08950 Fixes #50 ("64-byte alignment causes assertion in rbtree_best_fit") 2021-05-11 14:48:49 +02:00
Ion Gaztañaga
0fcdbc4083 Interprocess no longer depends on Boost.DateTime. Instead, all timed functions were templated to take a TimePoint. This time point can be boost::date_time::ptime, std::time_point or boost::chrono::time_point. 2021-04-13 15:18:23 +02:00
Ion Gaztañaga
3a856a0343 "robust_emulation_helpers::mutex_traits" forward declaration should be present when spin_recursive_mutex is used. 2021-03-12 08:57:34 +01:00
Ion Gaztañaga
dc11515620 Fix MacOS compilation error, the method to select the underlying synchronization mechanism was broken. 2021-03-11 23:12:09 +01:00
Ion Gaztañaga
ece73cef73 Fixes #120 ("segment_manager customization") 2021-02-21 00:15:21 +01:00
Ion Gaztañaga
cb30bb5f67 Closes #115 2021-02-19 00:33:16 +01:00