diff --git a/librf/src/mutex_v2.inl b/librf/src/mutex_v2.inl index 78d613d..26e70c0 100644 --- a/librf/src/mutex_v2.inl +++ b/librf/src/mutex_v2.inl @@ -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; diff --git a/librf/src/without_deadlock_assemble.inl b/librf/src/without_deadlock_assemble.inl index 7bef438..71288bb 100644 --- a/librf/src/without_deadlock_assemble.inl +++ b/librf/src/without_deadlock_assemble.inl @@ -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> diff --git a/tutorial/test_async_mutex.cpp b/tutorial/test_async_mutex.cpp index dd368b6..02a49e4 100644 --- a/tutorial/test_async_mutex.cpp +++ b/tutorial/test_async_mutex.cpp @@ -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); } }