소스 검색

兼容gcc 10

tags/2.9.10
tearshark 4 년 전
부모
커밋
92af05226c
2개의 변경된 파일16개의 추가작업 그리고 12개의 파일을 삭제
  1. 6
    2
      README.md
  2. 10
    10
      tutorial/test_async_mutex.cpp

+ 6
- 2
README.md 파일 보기

@@ -1,13 +1,17 @@
# librf 2.9.7
# librf 2.9.8

### librf - 协程库
* librf是一个基于C++ Coroutines提案 ‘Stackless Resumable Functions’编写的非对称stackless协程库。

支持以下平台和编译器:

Windows: 使用VS2017/VS2019/clang 9编译
Windows: 使用VS2017/VS2019/clang 9 编译
Android: 使用NDK 20.1 自带的clang编译
Mac: 使用XCode 11.2.1 自带的apple-clang编译
Ubuntu: 使用GCC 10.0.1编译(2020-04-18:mutex ranged lock failed)
注意:GCC 10.0.1在C++ Coroutines上存在很多BUG,并且缺少对应的头文件。
当前阶段不推荐使用。

librf有以下特点:


+ 10
- 10
tutorial/test_async_mutex.cpp 파일 보기

@@ -157,8 +157,8 @@ static future_t<> resumable_mutex_range_push(size_t idx, mutex_t a, mutex_t b, m
assert(c.is_locked());
++g_counter;
//std::cout << "push:" << g_counter << " on " << idx << std::endl;
//co_await 5ms;
std::cout << "push:" << g_counter << " on " << idx << std::endl;
co_await 5ms;
}
}
@@ -172,8 +172,8 @@ static future_t<> resumable_mutex_range_pop(size_t idx, mutex_t a, mutex_t b, mu
assert(c.is_locked());
--g_counter;
//std::cout << "pop :" << g_counter << " on " << idx << std::endl;
//co_await 5ms;
std::cout << "pop :" << g_counter << " on " << idx << std::endl;
co_await 5ms;
}
}
@@ -203,13 +203,13 @@ static void resumable_mutex_lock_range()
void resumable_main_mutex()
{
std::cout << "begin resumable_mutex_synch()" << std::endl;
resumable_mutex_synch();
std::cout << std::endl;
//std::cout << "begin resumable_mutex_synch()" << std::endl;
//resumable_mutex_synch();
//std::cout << std::endl;
std::cout << "begin resumable_mutex_async()" << std::endl;
resumable_mutex_async();
std::cout << std::endl;
//std::cout << "begin resumable_mutex_async()" << std::endl;
//resumable_mutex_async();
//std::cout << std::endl;
std::cout << "begin resumable_mutex_lock_range()" << std::endl;
resumable_mutex_lock_range();

Loading…
취소
저장