-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Port small to Windows/Visual Studio 2015 #10
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Redundant vsatomics.h removed
Although it's recommended to use something more complete (like pthread-win32 project), but in a mean-time we just stubbing some required pthread.h functions. Also fixed some minor warnings like returning values of void functions. Or using random() or rand_r() functions not implemented in MSVCRT.
…size_t) != sizeof(unsigned long)
…small unit tests**
Too old. Fee free to rebase-reopen. |
nshy
added a commit
to nshy/small
that referenced
this pull request
Jun 16, 2023
…troy It currently breaks Tarantool debug runs. For example on running 'box/box/reconfigure.test': tarantool#5 0x00007fed360483d6 in __assert_fail ( assertion=0x556b5a6c883d "lessor->leased == 0", file=0x556b5a6c87e8 "./src/lib/small/include/small/quota_lessor.h", line=104, function=0x556b5a6c99a0 <__PRETTY_FUNCTION__.15> "quota_lessor_destroy") at assert.c:101 tarantool#6 0x0000556b5a1d46ca in quota_lessor_destroy ( lessor=0x556b5a84a368 <main_cord+328>) at /home/shiny/dev/tarantool/src/lib/small/include/small/quota_lessor.h:104 tarantool#7 0x0000556b5a1d4aee in slab_cache_destroy (cache=0x556b5a84a368 <main_cord+328>) at /home/shiny/dev/tarantool/src/lib/small/include/small/slab_cache_malloc.h:142 tarantool#8 0x0000556b5a1db974 in cord_destroy (cord=0x556b5a84a220 <main_cord>) at /home/shiny/dev/tarantool/src/lib/core/fiber.c:1716 tarantool#9 0x0000556b5a1dd793 in fiber_free () at /home/shiny/dev/tarantool/src/lib/core/fiber.c:2052 tarantool#10 0x0000556b59f3b2ac in tarantool_free () at /home/shiny/dev/tarantool/src/main.cc:600 tarantool#11 0x0000556b59f3c01f in main (argc=3, argv=0x556b5b35b0e8) at /home/shiny/dev/tarantool/src/main.cc:875 Looks like Tarantool has leaks of memory allocated thru mempool/small allocators and misses destruction calls for these objects slab (it use same quota as slab cache and cleanup quota on destruction). Memory leak investigation is currently not easy task. We have a wide range of suppressions that may hide positive cases like in this test. Disabling suppresion is not possible as test-run stops to work due to Tarantool breaks on FP leaks. *TODO* add ticket reference.
nshy
added a commit
to nshy/small
that referenced
this pull request
Jun 21, 2023
…troy It currently breaks Tarantool debug runs. For example on running 'box/box/reconfigure.test': tarantool#5 0x00007fed360483d6 in __assert_fail ( assertion=0x556b5a6c883d "lessor->leased == 0", file=0x556b5a6c87e8 "./src/lib/small/include/small/quota_lessor.h", line=104, function=0x556b5a6c99a0 <__PRETTY_FUNCTION__.15> "quota_lessor_destroy") at assert.c:101 tarantool#6 0x0000556b5a1d46ca in quota_lessor_destroy ( lessor=0x556b5a84a368 <main_cord+328>) at /home/shiny/dev/tarantool/src/lib/small/include/small/quota_lessor.h:104 tarantool#7 0x0000556b5a1d4aee in slab_cache_destroy (cache=0x556b5a84a368 <main_cord+328>) at /home/shiny/dev/tarantool/src/lib/small/include/small/slab_cache_malloc.h:142 tarantool#8 0x0000556b5a1db974 in cord_destroy (cord=0x556b5a84a220 <main_cord>) at /home/shiny/dev/tarantool/src/lib/core/fiber.c:1716 tarantool#9 0x0000556b5a1dd793 in fiber_free () at /home/shiny/dev/tarantool/src/lib/core/fiber.c:2052 tarantool#10 0x0000556b59f3b2ac in tarantool_free () at /home/shiny/dev/tarantool/src/main.cc:600 tarantool#11 0x0000556b59f3c01f in main (argc=3, argv=0x556b5b35b0e8) at /home/shiny/dev/tarantool/src/main.cc:875 Looks like Tarantool has leaks of memory allocated thru mempool/small allocators and misses destruction calls for these objects slab (it use same quota as slab cache and cleanup quota on destruction). Memory leak investigation is currently not easy task. We have a wide range of suppressions that may hide positive cases like in this test. Disabling suppresion is not possible as test-run stops to work due to Tarantool breaks on FP leaks. *TODO* add ticket reference.
nshy
added a commit
to nshy/small
that referenced
this pull request
Jun 29, 2023
…troy It currently breaks Tarantool debug runs. For example on running 'box/box/reconfigure.test': tarantool#5 0x00007fed360483d6 in __assert_fail ( assertion=0x556b5a6c883d "lessor->leased == 0", file=0x556b5a6c87e8 "./src/lib/small/include/small/quota_lessor.h", line=104, function=0x556b5a6c99a0 <__PRETTY_FUNCTION__.15> "quota_lessor_destroy") at assert.c:101 tarantool#6 0x0000556b5a1d46ca in quota_lessor_destroy ( lessor=0x556b5a84a368 <main_cord+328>) at /home/shiny/dev/tarantool/src/lib/small/include/small/quota_lessor.h:104 tarantool#7 0x0000556b5a1d4aee in slab_cache_destroy (cache=0x556b5a84a368 <main_cord+328>) at /home/shiny/dev/tarantool/src/lib/small/include/small/slab_cache_malloc.h:142 tarantool#8 0x0000556b5a1db974 in cord_destroy (cord=0x556b5a84a220 <main_cord>) at /home/shiny/dev/tarantool/src/lib/core/fiber.c:1716 tarantool#9 0x0000556b5a1dd793 in fiber_free () at /home/shiny/dev/tarantool/src/lib/core/fiber.c:2052 tarantool#10 0x0000556b59f3b2ac in tarantool_free () at /home/shiny/dev/tarantool/src/main.cc:600 tarantool#11 0x0000556b59f3c01f in main (argc=3, argv=0x556b5b35b0e8) at /home/shiny/dev/tarantool/src/main.cc:875 Looks like Tarantool has leaks of memory allocated thru mempool/small allocators and misses destruction calls for these objects slab (it use same quota as slab cache and cleanup quota on destruction). Memory leak investigation is currently not easy task. We have a wide range of suppressions that may hide positive cases like in this test. Disabling suppresion is not possible as test-run stops to work due to Tarantool breaks on FP leaks. *TODO* add ticket reference.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Small library has been ported to Visual Studio 2015/Windows.
pthread, mmap and stdatomic compatibility support introduced.
Some smaller changes in code (e.g. void pointer ariphmetic(!)) or rlist changes required because of
lack of typeof support in preprocessor. Thisis good thing though, the code became more standard
compliant and less gcc specific.
stdatomic support will need to be revisited