Leonid Yuriev
0a75417d5f
mdbx: add pure- & const-function attributes to C API.
...
Change-Id: Ie4d1742f3d4717a0cd1fd5677b9b1ae641193d45
2020-08-23 13:29:44 +03:00
Leonid Yuriev
5e43ee61a2
mdbx: drop/deprecate MDBX_MAPASYNC.
...
Change-Id: I472f97f568a32325eb056c8ee4d2f2350a473bda
2020-08-06 01:48:56 +03:00
Leonid Yuriev
3351c1f869
mdbx: implements remapping of the database file when it it possible.
...
Change-Id: Ida15ba1f396a33b2c6063e680dff612f39a9608f
2020-07-06 16:23:52 +03:00
Leonid Yuriev
51a016245a
mdbx: using couple of condvars/events to avoid glitches on Windows.
...
Change-Id: I3256a8dcbb95c78e8dea3eb31ca73f42c58d2f61
2020-05-24 13:29:55 +03:00
Leonid Yuriev
5b4b3fa9ea
mdbx-windows: fix MDBX_AVOID_CRT option & ntdll.def distribution.
...
Resolve https://github.com/erthink/libmdbx/issues/100
Change-Id: I18ab055e79e249fca856353b2585739c88e01758
2020-05-10 03:41:28 +03:00
Leonid Yuriev
971f924c44
mdbx-build: rearrange source files, rework CMakeLists.txt and refine GNUMakefile (squashed).
...
Change-Id: Id73d346695011dab2f670bb9e6293a1e5a1835ca
2020-04-17 00:37:57 +03:00
Leonid Yuriev
f81374a9ce
mdbx-build: amalgamation.
...
Change-Id: Ic32de6ee119df2bc12136b882f4f7cabaa1314a9
2019-09-03 02:30:55 +03:00
Leonid Yuriev
113b29e68d
mdbx: add LCK-tracking to resolve double-open issue with POSIX-filelocks.
...
Change-Id: I29377000e4dde3c43527302b55d0daec58b709f5
2019-08-31 00:55:15 +03:00
Leonid Yuriev
51e7159f36
mdbx: dynamically discarding unused tail pages of DB file.
...
Change-Id: I1a0eee50cd27de26521e65c9f7ea51a527a0424e
2019-08-30 00:01:38 +03:00
Leonid Yuriev
648f991a5b
mdbx-windows: fix build with modern SDK but for legacy Windows.
...
Change-Id: Ic443815838715be8cc6565d4d7735651af0b58cc
2019-08-29 23:21:22 +03:00
Leonid Yuriev
25e20315ae
mdbx: minor fix for MSVC2019.
...
Change-Id: I628049e7c3a653ec3b549c45450677ec5ab883a7
2019-08-28 04:53:03 +03:00
Leonid Yuriev
9ddfa4f9c8
mdbx-windows: use PrefetchVirtualMemory().
2019-08-28 02:35:34 +03:00
Leonid Yuriev
fd0c92927a
mdbx: refine usage of posix_fadvise()madvise()/posix_madvise()/F_RDADVISE.
2019-08-27 21:35:43 +03:00
Leonid Yuriev
2536dc47ac
mdbx: refine features-macros for xBSD.
2019-08-25 16:04:33 +03:00
Leonid Yuriev
137d652d77
mdbx: refine attribute-based macros.
2019-08-25 04:37:15 +03:00
Leonid Yuriev
93f82f47bd
mdbx: refine setup_debug(), add MDBX_DBG_LEGACY_MULTIOPEN.
...
Change-Id: I5d144f6fa27b8f5885fa0a0fbd11fe1d44bcc41c
2019-08-25 04:36:28 +03:00
Leonid Yuriev
4ceaf842fe
mdbx: add timed auto-sync feature.
...
Change-Id: Ia9b8529fda321d5f78b306f270d157a78f708916
2019-08-23 13:13:20 +03:00
Leonid Yuriev
6f8238e1e9
mdbx: LCK-format version 3.
...
The LCK file is re-created at every opportunity when the process that
opens the database is the only one that works with it. Thus the change
of the format of the file LCK creates only minimal compatibility
problems.
Applications using different versions of _libmdbx_ will be able to work
with one database alternately, but not at the same time. This appears to
be an acceptable inconvenience in exchange for new features.
Change-Id: I9414b3fffd53d5519c8172c57345b1eaf6e51c77
2019-08-23 03:38:11 +03:00
Leonid Yuriev
ccbf3a2bcf
mdbx: rework mdbx_filesync().
2019-08-20 00:56:06 +03:00
Leonid Yuriev
91088af935
mdbx: initial OSX support.
2019-08-13 02:10:03 +03:00
Leonid Yuriev
1798904cf4
mdbx: description of internal lck API.
...
Change-Id: Ic677ba62ca566409a44234a1c0d8b0b41158fe86
2019-08-09 21:34:19 +03:00
Leonid Yuriev
663f3f3c58
mdbx: conditionally use cacheflush() for linux < 2.6.11
...
Change-Id: Id34c67797e14f709f767bf1b687319cd2dfef874
2019-07-22 00:19:15 +03:00
Leonid Yuriev
a6bad26e1d
mdbx: rename/clarify flush_noncoherent_cpu_writeback().
...
Change-Id: I05a5df8d2a283159f449fc1e68a14d0a1861a714
2019-07-21 22:52:21 +03:00
Leonid Yuriev
f39044124e
mdbx: clarify/rework invalidate_mmap_noncoherent_cache() for MIPS.
...
Change-Id: I70c279c2ba67191c7cb93cd8875082eb9c8e58b7
2019-07-21 22:52:16 +03:00
Leonid Yuriev
2544a621e7
mdbx: portability - support for non-_GNU_SOURCE mode.
...
Change-Id: I9988d0ea8a9ddc06c799c65c4b2728bd17ff77e7
2019-07-14 15:13:43 +03:00
Leonid Yuriev
cf7160bda2
mdbx: portability - don't include malloc.h
on BSD.
...
Change-Id: I67f580c073bfe52fbd2e4ff599354e6d0f597e95
2019-07-14 15:08:02 +03:00
Leonid Yuriev
38110579ba
mdbx: drops mdbx_write(), using mdbx_pwrite() instead of.
...
Change-Id: Iff3de2d5ef3fa2e92607d46b96d4526e464e593b
2019-07-01 16:39:18 +03:00
Leo Yuriev
9cc9116df3
mdbx: 2019 HNY.
...
Change-Id: Iec6b7affedef0ea89fad917eb17af7e8201a7482
2019-02-03 12:28:01 +03:00
Leonid Yuriev
624968b74c
mdbx-windows: use SetFileInformationByHandle() when available.
...
Change-Id: I27d9d4271d4328947ad68cdf30af61a31978b4f9
2018-12-28 13:53:57 +03:00
Leonid Yuriev
629637d95e
mdbx-osal: add mdbx_fseek().
...
Change-Id: I5744aa3ba51bd1acaeedd866e6b21a1330c3f711
2018-11-04 20:34:16 +03:00
Leonid Yuriev
c2f850b566
mdbx-windows: STATIC_ASSERTs for atomic ops.
...
Change-Id: I9797eece26db54e5f4a19f82d004ff18bdc138d6
2018-10-21 20:27:34 +03:00
Leonid Yuriev
f93cca3d14
mdbx-windows: minor simplify MDBX_srwlock.
...
Change-Id: I1db8e7dab2a3c764fdbe64923cfaab238eacc77e
2018-10-21 20:27:05 +03:00
Leonid Yuriev
ecf214ca04
mdbx-windows: add MDBX_AVOID_CRT.
...
Change-Id: I08233d777b318037372ec250c754f093b3047c94
2018-10-19 15:16:33 +03:00
Leonid Yuriev
d2bfb2e489
mdbx: allow pre-define mdbx_malloc/mdbx_free macros.
...
Related to https://github.com/leo-yuriev/libmdbx/issues/43#issuecomment-429625047
Change-Id: Icaee4ba62003e6eacef9f938bdea19426623b5da
2018-10-14 19:06:42 +03:00
Leonid Yuriev
582adda628
mdbx-windows: fix mdbx_strdup() usage.
...
Fix commit e229dbe9dca1ff117a714007cc3811c01ba98b8b (12 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43 ).
Change-Id: Ic63864d736319ccba37518a50590f4e21282a451
2018-10-14 17:36:15 +03:00
Leonid Yuriev
25ab7da33e
mdbx-windows: _NO_CRT_STDIO_INLINE to avoid dependency from CRT.
...
16 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43
Change-Id: Ie5d33e2a4f1fd281a28eaa6686aaf921ecc956b4
2018-10-14 15:03:38 +03:00
Leonid Yuriev
e229dbe9dc
mdbx-windows: add mdbx_strdup() to avoid dependency from CRT.
...
12 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43
Change-Id: Ib1379d75dc25e34f56daf8988848c41f59b6cd6b
2018-10-14 15:00:16 +03:00
Leonid Yuriev
b47badb3ee
mdbx-windows: rework mdbx_memalign_alloc()/mdbx_memalign_free() to avoid dependency from CRT.
...
11 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43
Change-Id: Id1a76f88588251cab9a93aa9753021b30159b09a
2018-10-14 14:59:37 +03:00
Leonid Yuriev
4dea5c2719
mdbx-windows: use _snprintf() and _vsnprintf() to avoid dependency from CRT.
...
8 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43
Change-Id: I335a12344b0f0d63462ac4195fafdb60f981f182
2018-10-14 14:57:34 +03:00
Leonid Yuriev
ded5269937
mdbx-windows: rework mdbx_assert_fail() and mdbx_panic() to avoid dependency from CRT.
...
7 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43
Change-Id: I40dc8d6a7d1d955c13c7d328ee904f0e6f30b248
2018-10-14 14:57:03 +03:00
Leonid Yuriev
9fae7f92d6
mdbx-windows: use LocalAlloc/LocalFree instead of CRT's malloc/free.
...
2 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43
Change-Id: Icb5289b55897d52ac00007f30b36bd84e5a0cbd1
2018-10-14 14:53:57 +03:00
Leonid Yuriev
ace3d1bfa3
mdbx: add mdbx_malloc/mdbx_free, etc.
...
1 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43
Change-Id: Ia5204be9f943fefde42e6a46e652c1be6ab6a96b
2018-10-14 14:53:40 +03:00
Leonid Yuriev
c9e3dc373b
mdbx-windows: more for WindowsXP support.
...
Change-Id: Ide34048720989fc010f48e086569e12e8c1edca1
2018-10-08 02:18:32 +03:00
Leonid Yuriev
83f3d820f1
mdbx-windows: refine debug-logging.
2018-10-08 02:17:27 +03:00
Leonid Yuriev
7a3c8743f3
mdbx: fix use _ASSERTE.
...
Change-Id: Iba139ddcfc6cbc93b74f3d7387492b6ae6496dcc
2018-10-08 02:14:12 +03:00
Leo Yuriev
5a1f388db5
mdbx: drop unused mdbx_lck_upgrade().
2018-08-01 18:16:40 +03:00
Leo Yuriev
797bcf9aca
mdbx: add mdbx_removefile().
...
Change-Id: I985926bdef28387d5872317a3ecf47953ce4812c
2018-06-30 14:56:28 +03:00
Leonid Yuriev
b57c3b2503
mdbx: check for non-local files in non-exclusive mode.
...
Change-Id: Ibd1bbf48aba42d5ed736069d59b18ac0dd143554
2018-06-20 13:52:08 +03:00
Leo Yuriev
0dfa9cd09a
mdbx: add MDBX_EXCLUSIVE instead of mdbx_env_open_ex().
...
Change-Id: I3c817d58d971385bcd07643df14beaf7122c7836
2018-06-20 13:52:02 +03:00
Leo Yuriev
09ad941a05
mdbx: Windows XP compatibility.
...
Change-Id: Iafe3a83110610071e42a168ef9fc5f8d3131854f
2018-06-20 13:47:14 +03:00