lock-free LIFO stack by C native built it, easy built cross platform(no extra dependencies needed) , guarantee thread safety memory management ever!
externintlfstack_init(lfstack_t*lfstack); externintlfstack_push(lfstack_t*lfstack, void*value); externvoid*lfstack_pop(lfstack_t*lfstack); externvoid*lfstack_single_pop(lfstack_t*lfstack); externvoidlfstack_destroy(lfstack_t*lfstack); externsize_tlfstack_size(lfstack_t*lfstack); externvoidlfstack_sleep(unsigned intmilisec);int*int_data; lfstack_tmystack; if (lfstack_init(&mystack) ==-1) return-1; /** Wrap This scope in other threads **/int_data= (int*) malloc(sizeof(int)); assert(int_data!=NULL); *int_data=i++; /*PUSH*/while (lfstack_push(&mystack, int_data) ==-1){printf("ENQ Full ?\n")} /** Wrap This scope in other threads **//*POP*/while ( (int_data=lfstack_pop(&mystack)) ==NULL){printf("POP EMPTY ..\n")} // printf("%d\n", *(int*) int_data );free(int_data); /** End **/lfstack_destroy(&mystack);For linux OS, you may use cmake build, for other platforms, please kindly include the source code and header file into the project, e.g. VS2017, DEV-C++, Xcode
mkdir build cd build cmake .. make ./lfstack-example valgrind --tool=memcheck --leak-check=full ./lfstack-example sudo make install For continuously test until N number, if you having any issue while testing, please kindly raise an issue
./keep-testing.sh cd build sudo make uninstall