Commit Graph

511 Commits

Author SHA1 Message Date
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
Ion Gaztañaga
3851b2c785 Add BOOST_NOEXCEPT to sync utilities 2021-02-16 00:18:44 +01:00
Ion Gaztañaga
75ecc955d3 Fixes #122 ("Mark constructors/assignment/swap noexcept where possible") 2021-02-16 00:01:04 +01:00
Ion Gaztañaga
9f40b16e9c - Alignment passed "to managed_open_or_create_impl" shall be the strictest between alignof(segment_manager) and the alignment of the embedded memory algorithm so that both the segment_manager and the allocated blocks are properly aligned. 2021-02-15 16:03:27 +01:00
Ion Gaztañaga
f85d2cb99c Make priv_end_block() more consistent with priv_add_segment() avoid false positives in assertions. 2021-02-15 10:18:08 +01:00
Ion Gaztañaga
6b61f9d990 Fixes #83 ("Add BOOST_INTERPROCESS_FORCE_NATIVE_EMULATION option") 2021-02-14 00:36:13 +01:00
Ion Gaztañaga
639afc2a59 Rename internal "windows_xxx" implementations to "winapi_xxx" implementation as public "windows_xxx" resources are native windows implementations, instead of POSIX emulations based on winapi system calls. 2021-02-13 23:27:50 +01:00
Ion Gaztañaga
74fac07b21 Fixes #126 ("_ReadWriteBarrier is deprecated warning when compiling with clang-cl.exe!) disabling deprecation warning on BOOST_INTERPROCESS_READ_WRITE_BARRIER 2021-02-12 19:21:07 +01:00
Ion Gaztañaga
00b85dff97 Fixes #138. 2021-02-12 00:12:02 +01:00
Ion Gaztañaga
86464712c2 - As suggested in the report, windows_semaphore implementation stores the initial count to be able to use it when there is need to recreate the winapi semaphore structure. Fixes #123.
- Tests are also improved in Windows to test both the generic implementation and the alternative windows implementation.
2021-02-11 12:59:40 +01:00
Ion Gaztañaga
705a51f649 Removed _beginthreadex usage. Fixes #76. 2021-02-10 22:28:45 +01:00
Ion Gaztañaga
87379be15f Fixes #106 (Use fallocate on truncate_file) 2021-02-03 09:15:40 +01:00
Ion Gaztañaga
561e9e80b5 Merge branch 'patch-1' of https://github.com/decent-dcore/interprocess into decent-dcore-patch-1 2021-02-02 15:15:12 +01:00
Ion Gaztañaga
4a93e3e246 Merge branch 'develop' into develop 2021-02-02 15:07:40 +01:00
Ion Gaztañaga
140b50efb3 Added support for wide characters when creating named resources in operating systems with wide-char APIs (at this time, Windows).
Fixes #93 and fixes #134.
2021-01-31 00:27:15 +01:00