Skip to content

Commit 40db46c

Browse files
authored
Merge pull request #224 from maztheman/master
Added simple C API (issue #217)
2 parents 6f57c62 + cc07642 commit 40db46c

15 files changed

Lines changed: 329 additions & 23 deletions

build/makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@ tests: bin/unittests$(EXT) bin/fuzztests$(EXT)
2929

3030
benchmarks: bin/benchmarks$(EXT)
3131

32-
bin/unittests$(EXT): ../concurrentqueue.h ../blockingconcurrentqueue.h ../lightweightsemaphore.h ../tests/unittests/unittests.cpp ../tests/unittests/mallocmacro.cpp ../tests/common/simplethread.h ../tests/common/simplethread.cpp ../tests/common/systemtime.h ../tests/common/systemtime.cpp ../tests/corealgos.h ../tests/unittests/minitest.h makefile
32+
bin/unittests$(EXT): ../concurrentqueue.h ../blockingconcurrentqueue.h ../lightweightsemaphore.h ../tests/unittests/unittests.cpp ../tests/unittests/mallocmacro.cpp ../tests/common/simplethread.h ../tests/common/simplethread.cpp ../tests/common/systemtime.h ../tests/common/systemtime.cpp ../tests/corealgos.h ../tests/unittests/minitest.h ../c_api/blockingconcurrentqueue.cpp ../c_api/concurrentqueue.cpp makefile
3333
test -d bin || mkdir bin
34-
g++ -std=c++11 -Wall -pedantic-errors -Wpedantic -Wconversion $(OPTS) -fno-elide-constructors ../tests/common/simplethread.cpp ../tests/common/systemtime.cpp ../tests/unittests/unittests.cpp -o bin/unittests$(EXT) $(LD_OPTS)
34+
g++ -c -std=c++11 -Wall -pedantic-errors -Wpedantic -Wconversion -DMOODYCAMEL_STATIC $(OPTS) -fno-elide-constructors -fno-exceptions ../c_api/blockingconcurrentqueue.cpp ../c_api/concurrentqueue.cpp
35+
g++ -std=c++11 -Wall -pedantic-errors -Wpedantic -Wconversion -DMOODYCAMEL_STATIC $(OPTS) -fno-elide-constructors ../tests/common/simplethread.cpp ../tests/common/systemtime.cpp ../tests/unittests/unittests.cpp blockingconcurrentqueue.o concurrentqueue.o -o bin/unittests$(EXT) $(LD_OPTS)
3536

3637
bin/fuzztests$(EXT): ../concurrentqueue.h ../tests/fuzztests/fuzztests.cpp ../tests/common/simplethread.h ../tests/common/simplethread.cpp ../tests/common/systemtime.h ../tests/common/systemtime.cpp ../tests/corealgos.h makefile
3738
test -d bin || mkdir bin

build/msvc11/unittests.vcxproj

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
</PrecompiledHeader>
9393
<WarningLevel>Level3</WarningLevel>
9494
<Optimization>Disabled</Optimization>
95-
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
95+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
9696
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
9797
</ClCompile>
9898
<Link>
@@ -106,7 +106,7 @@
106106
</PrecompiledHeader>
107107
<WarningLevel>Level3</WarningLevel>
108108
<Optimization>Disabled</Optimization>
109-
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
109+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
110110
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
111111
</ClCompile>
112112
<Link>
@@ -122,7 +122,7 @@
122122
<Optimization>MaxSpeed</Optimization>
123123
<FunctionLevelLinking>true</FunctionLevelLinking>
124124
<IntrinsicFunctions>true</IntrinsicFunctions>
125-
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
125+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
126126
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
127127
</ClCompile>
128128
<Link>
@@ -140,7 +140,7 @@
140140
<Optimization>MaxSpeed</Optimization>
141141
<FunctionLevelLinking>true</FunctionLevelLinking>
142142
<IntrinsicFunctions>true</IntrinsicFunctions>
143-
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
143+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
144144
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
145145
</ClCompile>
146146
<Link>
@@ -158,6 +158,26 @@
158158
<ClInclude Include="..\..\tests\unittests\minitest.h" />
159159
</ItemGroup>
160160
<ItemGroup>
161+
<ClCompile Include="..\..\c_api\blockingconcurrentqueue.cpp">
162+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExceptionHandling>
163+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExceptionHandling>
164+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExceptionHandling>
165+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExceptionHandling>
166+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
167+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
168+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
169+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
170+
</ClCompile>
171+
<ClCompile Include="..\..\c_api\concurrentqueue.cpp">
172+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExceptionHandling>
173+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExceptionHandling>
174+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExceptionHandling>
175+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExceptionHandling>
176+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
177+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
178+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
179+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
180+
</ClCompile>
161181
<ClCompile Include="..\..\tests\common\simplethread.cpp" />
162182
<ClCompile Include="..\..\tests\common\systemtime.cpp" />
163183
<ClCompile Include="..\..\tests\unittests\unittests.cpp" />

build/msvc11/unittests.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,11 @@
4040
<ClCompile Include="..\..\tests\unittests\mallocmacro.cpp">
4141
<Filter>Source Files</Filter>
4242
</ClCompile>
43+
<ClCompile Include="..\..\c_api\blockingconcurrentqueue.cpp">
44+
<Filter>Source Files</Filter>
45+
</ClCompile>
46+
<ClCompile Include="..\..\c_api\concurrentqueue.cpp">
47+
<Filter>Source Files</Filter>
48+
</ClCompile>
4349
</ItemGroup>
4450
</Project>

build/msvc12/unittests.vcxproj

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
</PrecompiledHeader>
9393
<WarningLevel>Level3</WarningLevel>
9494
<Optimization>Disabled</Optimization>
95-
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
95+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
9696
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
9797
</ClCompile>
9898
<Link>
@@ -106,7 +106,7 @@
106106
</PrecompiledHeader>
107107
<WarningLevel>Level3</WarningLevel>
108108
<Optimization>Disabled</Optimization>
109-
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
109+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
110110
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
111111
</ClCompile>
112112
<Link>
@@ -122,7 +122,7 @@
122122
<Optimization>MaxSpeed</Optimization>
123123
<FunctionLevelLinking>true</FunctionLevelLinking>
124124
<IntrinsicFunctions>true</IntrinsicFunctions>
125-
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
125+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
126126
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
127127
</ClCompile>
128128
<Link>
@@ -140,7 +140,7 @@
140140
<Optimization>MaxSpeed</Optimization>
141141
<FunctionLevelLinking>true</FunctionLevelLinking>
142142
<IntrinsicFunctions>true</IntrinsicFunctions>
143-
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
143+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
144144
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
145145
</ClCompile>
146146
<Link>
@@ -159,6 +159,26 @@
159159
<ClInclude Include="..\..\tests\unittests\minitest.h" />
160160
</ItemGroup>
161161
<ItemGroup>
162+
<ClCompile Include="..\..\c_api\blockingconcurrentqueue.cpp">
163+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExceptionHandling>
164+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExceptionHandling>
165+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExceptionHandling>
166+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExceptionHandling>
167+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
168+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
169+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
170+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
171+
</ClCompile>
172+
<ClCompile Include="..\..\c_api\concurrentqueue.cpp">
173+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExceptionHandling>
174+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExceptionHandling>
175+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExceptionHandling>
176+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExceptionHandling>
177+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
178+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
179+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
180+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
181+
</ClCompile>
162182
<ClCompile Include="..\..\tests\common\simplethread.cpp" />
163183
<ClCompile Include="..\..\tests\common\systemtime.cpp" />
164184
<ClCompile Include="..\..\tests\unittests\mallocmacro.cpp" />

build/msvc12/unittests.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,11 @@
4343
<ClCompile Include="..\..\tests\unittests\mallocmacro.cpp">
4444
<Filter>Source Files</Filter>
4545
</ClCompile>
46+
<ClCompile Include="..\..\c_api\blockingconcurrentqueue.cpp">
47+
<Filter>Source Files</Filter>
48+
</ClCompile>
49+
<ClCompile Include="..\..\c_api\concurrentqueue.cpp">
50+
<Filter>Source Files</Filter>
51+
</ClCompile>
4652
</ItemGroup>
4753
</Project>

build/msvc14/unittests.vcxproj

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
</PrecompiledHeader>
9393
<WarningLevel>Level3</WarningLevel>
9494
<Optimization>Disabled</Optimization>
95-
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
95+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
9696
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
9797
</ClCompile>
9898
<Link>
@@ -106,7 +106,7 @@
106106
</PrecompiledHeader>
107107
<WarningLevel>Level3</WarningLevel>
108108
<Optimization>Disabled</Optimization>
109-
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
109+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
110110
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
111111
</ClCompile>
112112
<Link>
@@ -122,7 +122,7 @@
122122
<Optimization>MaxSpeed</Optimization>
123123
<FunctionLevelLinking>true</FunctionLevelLinking>
124124
<IntrinsicFunctions>true</IntrinsicFunctions>
125-
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
125+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
126126
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
127127
</ClCompile>
128128
<Link>
@@ -140,7 +140,7 @@
140140
<Optimization>MaxSpeed</Optimization>
141141
<FunctionLevelLinking>true</FunctionLevelLinking>
142142
<IntrinsicFunctions>true</IntrinsicFunctions>
143-
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
143+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;MOODYCAMEL_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
144144
<DisableSpecificWarnings>4146</DisableSpecificWarnings>
145145
</ClCompile>
146146
<Link>
@@ -159,6 +159,26 @@
159159
<ClInclude Include="..\..\tests\unittests\minitest.h" />
160160
</ItemGroup>
161161
<ItemGroup>
162+
<ClCompile Include="..\..\c_api\blockingconcurrentqueue.cpp">
163+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExceptionHandling>
164+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExceptionHandling>
165+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExceptionHandling>
166+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExceptionHandling>
167+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
168+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
169+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
170+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
171+
</ClCompile>
172+
<ClCompile Include="..\..\c_api\concurrentqueue.cpp">
173+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExceptionHandling>
174+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExceptionHandling>
175+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExceptionHandling>
176+
<ExceptionHandling Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExceptionHandling>
177+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
178+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
179+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
180+
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
181+
</ClCompile>
162182
<ClCompile Include="..\..\tests\common\simplethread.cpp" />
163183
<ClCompile Include="..\..\tests\common\systemtime.cpp" />
164184
<ClCompile Include="..\..\tests\unittests\mallocmacro.cpp" />

build/msvc14/unittests.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,11 @@
4343
<ClCompile Include="..\..\tests\unittests\mallocmacro.cpp">
4444
<Filter>Source Files</Filter>
4545
</ClCompile>
46+
<ClCompile Include="..\..\c_api\blockingconcurrentqueue.cpp">
47+
<Filter>Source Files</Filter>
48+
</ClCompile>
49+
<ClCompile Include="..\..\c_api\concurrentqueue.cpp">
50+
<Filter>Source Files</Filter>
51+
</ClCompile>
4652
</ItemGroup>
4753
</Project>

0 commit comments

Comments
 (0)