Browse Source

兼容gcc 10

tags/2.9.10
tearshark 4 years ago
parent
commit
b0b9934845
3 changed files with 1 additions and 11 deletions
  1. 1
    1
      librf/src/mutex_v2.inl
  2. 0
    7
      librf/src/without_deadlock_assemble.inl
  3. 0
    3
      tutorial/test_async_mutex.cpp

+ 1
- 1
librf/src/mutex_v2.inl View File

@@ -475,7 +475,7 @@ namespace resumef
for (int cnt = rand() % (1 + _mutex.size()); cnt >= 0; --cnt)
{
std::this_thread::yield(); //还要考虑多线程里运行的情况
co_await yield_awaitor{};
co_await yield();
}
}
future_t<> _ReturnValue() const;

+ 0
- 7
librf/src/without_deadlock_assemble.inl View File

@@ -104,7 +104,6 @@ struct LOCK_ASSEMBLE_NAME(lock_impl)
static auto _Lock_nonmember2(_LA& _LkN) ->decltype(_LkN._ReturnValue())
{
// lock 2 locks, without deadlock, special case for better codegen and reduced metaprogramming for common case
#if defined(__GNUC__)
for (;;)
{
auto _Result__ = LOCK_ASSEMBLE_AWAIT(_Lock_attempt_small2(_LkN, 0, 1));
@@ -112,12 +111,6 @@ struct LOCK_ASSEMBLE_NAME(lock_impl)
_Result__ = LOCK_ASSEMBLE_AWAIT(_Lock_attempt_small2(_LkN, 1, 0));
if (!_Result__) break;
}
#else
while (LOCK_ASSEMBLE_AWAIT(_Lock_attempt_small2(_LkN, 0, 1)) &&
LOCK_ASSEMBLE_AWAIT(_Lock_attempt_small2(_LkN, 1, 0)))
{ // keep trying
}
#endif
}
template<_LockAssembleT _LA>

+ 0
- 3
tutorial/test_async_mutex.cpp View File

@@ -158,7 +158,6 @@ static future_t<> resumable_mutex_range_push(size_t idx, mutex_t a, mutex_t b, m
++g_counter;
//std::cout << "push:" << g_counter << " on " << idx << std::endl;
//co_await 5ms;
}
}
@@ -174,9 +173,7 @@ static future_t<> resumable_mutex_range_pop(size_t idx, mutex_t a, mutex_t b, mu
--g_counter;
//std::cout << "pop :" << g_counter << " on " << idx << std::endl;
//co_await 5ms;
//co_await mutex_t::unlock(a, b, c);
}
}

Loading…
Cancel
Save