Browse Source

兼容 asio 1.14.1版本

兼容 VS2019 version 16.5.0 preview 2.0
tags/v2.9.7
tearshark 4 years ago
parent
commit
1a0817bd02

+ 6
- 0
librf/src/future.h View File

{ {
return _state->cancellation_requested(); return _state->cancellation_requested();
} }
/*
void unhandled_exception()
{
std::terminate();
}
*/
//return_value/return_void 只能由派生类去实现 //return_value/return_void 只能由派生类去实现

+ 2
- 2
librf/src/rf_task.h View File

//这个'函数对象'被调用后,返回generator<_Ty>/future_t<_Ty>类型 //这个'函数对象'被调用后,返回generator<_Ty>/future_t<_Ty>类型
//然后'函数对象'作为异步执行的上下文状态保存起来 //然后'函数对象'作为异步执行的上下文状态保存起来
template<class _Ctx> template<class _Ctx>
struct ctx_task_t : public task_t<typename std::result_of<_Ctx()>::type>
struct ctx_task_t : public task_t<typename std::decay<decltype(std::declval<_Ctx>()())>::type>
{ {
typedef task_t<typename std::result_of<_Ctx()>::type> base_type;
typedef task_t<typename std::decay<decltype(std::declval<_Ctx>()())>::type> base_type;
using base_type::_future; using base_type::_future;
typedef _Ctx context_type; typedef _Ctx context_type;

+ 2
- 2
tutorial/test_async_dynamic_go.cpp View File

void test_dynamic_go() void test_dynamic_go()
{ {
auto co_star = [](int j)
auto co_star = [](int j) -> resumef::future_t<int>
{ {
for (int i = 0; i < M; ++i) for (int i = 0; i < M; ++i)
{ {
go[=]()
go[=]() -> std::experimental::generator<int>
{ {
for (int k = 0; k < M; ++k) for (int k = 0; k < M; ++k)
{ {

+ 2
- 2
tutorial/test_async_resumable.cpp View File

static const intptr_t N = 3000000; static const intptr_t N = 3000000;
//static const int N = 10; //static const int N = 10;
auto yield_switch(intptr_t coro)
auto yield_switch(intptr_t coro) -> std::experimental::generator<intptr_t>
{ {
for (intptr_t i = 0; i < N / coro; ++i) for (intptr_t i = 0; i < N / coro; ++i)
co_yield i; co_yield i;
for (intptr_t i = 0; i < coro; ++i) for (intptr_t i = 0; i < coro; ++i)
{ {
//go yield_switch(coro); //go yield_switch(coro);
go [=]
go [=] ()->std::experimental::generator<intptr_t>
{ {
for (intptr_t i = 0; i < N / coro; ++i) for (intptr_t i = 0; i < N / coro; ++i)
co_yield i; co_yield i;

+ 2
- 2
tutorial/test_async_yield_return.cpp View File

using namespace resumef; using namespace resumef;
//std::experimental::generator<int> //std::experimental::generator<int>
auto test_yield_int()
auto test_yield_int() -> std::experimental::generator<int>
{ {
std::cout << "1 will yield return" << std::endl; std::cout << "1 will yield return" << std::endl;
co_yield 1; co_yield 1;
} }
*/ */
auto test_yield_void()
auto test_yield_void() -> std::experimental::generator<std::nullptr_t>
{ {
std::cout << "block 1 will yield return" << std::endl; std::cout << "block 1 will yield return" << std::endl;
co_yield_void; co_yield_void;

+ 1
- 1
vs_proj/librf.cpp View File

else else
resumable_main_benchmark_asio_server(); resumable_main_benchmark_asio_server();
*/ */
return 0;
//return 0;
resumable_main_when_all(); resumable_main_when_all();
resumable_main_multi_thread(); resumable_main_multi_thread();

+ 6
- 6
vs_proj/librf.vcxproj View File

<ProjectGuid>{C1D4A6BD-592F-4E48-8178-7C87219BF80E}</ProjectGuid> <ProjectGuid>{C1D4A6BD-592F-4E48-8178-7C87219BF80E}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>librf</RootNamespace> <RootNamespace>librf</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/await</AdditionalOptions> <AdditionalOptions>/await</AdditionalOptions>
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;ASIO_STANDALONE;RESUMEF_DEBUG_COUNTER=0;RESUMEF_ENABLE_MULT_SCHEDULER=1;RESUMEF_USE_BOOST_ANY=0;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;ASIO_STANDALONE;RESUMEF_DEBUG_COUNTER=0;RESUMEF_ENABLE_MULT_SCHEDULER=1;RESUMEF_USE_BOOST_ANY=0;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/await</AdditionalOptions> <AdditionalOptions>/await</AdditionalOptions>
<Optimization>Full</Optimization> <Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck> <SDLCheck>
</SDLCheck> </SDLCheck>
<AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>MaxSpeed</Optimization> <Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;ASIO_STANDALONE;RESUMEF_ENABLE_MULT_SCHEDULER=1;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;ASIO_STANDALONE;RESUMEF_ENABLE_MULT_SCHEDULER=1;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/await</AdditionalOptions> <AdditionalOptions>/await</AdditionalOptions>
<ExceptionHandling>Sync</ExceptionHandling> <ExceptionHandling>Sync</ExceptionHandling>

Loading…
Cancel
Save