tearshark 3 роки тому
джерело
коміт
4ac08ab5bd
5 змінених файлів з 32 додано та 3 видалено
  1. 26
    0
      librf/librf.h
  2. 2
    0
      librf/src/def.h
  3. 1
    1
      librf/src/future.h
  4. 1
    1
      librf/src/generator.h
  5. 2
    1
      vs_proj/librf.vcxproj

+ 26
- 0
librf/librf.h Переглянути файл

@@ -33,7 +33,33 @@
#include <optional>
#include <thread>
#include <cassert>
#ifdef __cpp_impl_coroutine
#include <coroutine>
#ifdef _MSC_VER
extern "C" size_t _coro_frame_size();
extern "C" void* _coro_frame_ptr();
extern "C" void _coro_init_block();
extern "C" void* _coro_resume_addr();
extern "C" void _coro_init_frame(void*);
extern "C" void _coro_save(size_t);
extern "C" void _coro_suspend(size_t);
extern "C" void _coro_cancel();
extern "C" void _coro_resume_block();
#pragma intrinsic(_coro_frame_size)
#pragma intrinsic(_coro_frame_ptr)
#pragma intrinsic(_coro_init_block)
#pragma intrinsic(_coro_resume_addr)
#pragma intrinsic(_coro_init_frame)
#pragma intrinsic(_coro_save)
#pragma intrinsic(_coro_suspend)
#pragma intrinsic(_coro_cancel)
#pragma intrinsic(_coro_resume_block)
#endif
#else
#include <experimental/coroutine>
#endif
#include "src/stop_token.hpp"

+ 2
- 0
librf/src/def.h Переглянути файл

@@ -2,6 +2,7 @@
#define LIB_RESUMEF_VERSION 30000 // 3.0.0
#ifndef __cpp_impl_coroutine
namespace std
{
using experimental::coroutine_traits;
@@ -10,6 +11,7 @@ namespace std
using experimental::suspend_always;
using experimental::suspend_never;
}
#endif
namespace resumef
{

+ 1
- 1
librf/src/future.h Переглянути файл

@@ -36,7 +36,7 @@ namespace resumef
}
template<class _PromiseT/*, typename = std::enable_if_t<traits::is_promise_v<_PromiseT>>*/>
void await_suspend(coroutine_handle<_PromiseT> handler)
void await_suspend(coroutine_handle<_PromiseT> handler) const
{
_state->future_await_suspend(handler);
}

+ 1
- 1
librf/src/generator.h Переглянути файл

@@ -161,7 +161,7 @@ namespace resumef
//ref_state()->set_exception(std::move(e));
std::terminate();
}
#if defined(__clang__) || defined(__GNUC__)
#if defined(__cpp_impl_coroutine) || defined(__clang__) || defined(__GNUC__)
void unhandled_exception()
{
//this->ref_state()->set_exception(std::current_exception());

+ 2
- 1
vs_proj/librf.vcxproj Переглянути файл

@@ -105,7 +105,8 @@
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WIN32_WINNT=0x0601;_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;RESUMEF_ENABLE_MULT_SCHEDULER=1;RESUMEF_DEBUG_COUNTER=0;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;..\modern_cb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/await</AdditionalOptions>
<AdditionalOptions>
</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<LanguageStandard>stdcpplatest</LanguageStandard>
<CLanguageStandard>c11</CLanguageStandard>

Завантаження…
Відмінити
Зберегти