Imported Upstream version 1.64.0
[platform/upstream/boost.git] / libs / fiber / src / recursive_timed_mutex.cpp
index af6c9b1..4f491cc 100644 (file)
@@ -24,74 +24,74 @@ recursive_timed_mutex::try_lock_until_( std::chrono::steady_clock::time_point co
     if ( std::chrono::steady_clock::now() > timeout_time) {
         return false;
     }
-    context * ctx = context::active();
+    context * active_ctx = context::active();
     // store this fiber in order to be notified later
-    detail::spinlock_lock lk( wait_queue_splk_);
-    if ( ctx == owner_) {
+    detail::spinlock_lock lk{ wait_queue_splk_ };
+    if ( active_ctx == owner_) {
         ++count_;
         return true;
     } else if ( nullptr == owner_) {
-        owner_ = ctx;
+        owner_ = active_ctx;
         count_ = 1;
         return true;
     }
-    BOOST_ASSERT( ! ctx->wait_is_linked() );
-    ctx->wait_link( wait_queue_);
+    BOOST_ASSERT( ! active_ctx->wait_is_linked() );
+    active_ctx->wait_link( wait_queue_);
     // suspend this fiber until notified or timed-out
-    if ( ! context::active()->wait_until( timeout_time, lk) ) {
+    if ( ! active_ctx->wait_until( timeout_time, lk) ) {
         // remove fiber from wait-queue 
         lk.lock();
-        ctx->wait_unlink();
+        wait_queue_.remove( * active_ctx);
         return false;
     }
-    BOOST_ASSERT( ! ctx->wait_is_linked() );
-    return ctx == owner_;
+    BOOST_ASSERT( ! active_ctx->wait_is_linked() );
+    return active_ctx == owner_;
 }
 
 void
 recursive_timed_mutex::lock() {
-    context * ctx = context::active();
+    context * active_ctx = context::active();
     // store this fiber in order to be notified later
-    detail::spinlock_lock lk( wait_queue_splk_);
-    if ( ctx == owner_) {
+    detail::spinlock_lock lk{ wait_queue_splk_ };
+    if ( active_ctx == owner_) {
         ++count_;
         return;
     } else if ( nullptr == owner_) {
-        owner_ = ctx;
+        owner_ = active_ctx;
         count_ = 1;
         return;
     }
-    BOOST_ASSERT( ! ctx->wait_is_linked() );
-    ctx->wait_link( wait_queue_);
+    BOOST_ASSERT( ! active_ctx->wait_is_linked() );
+    active_ctx->wait_link( wait_queue_);
     // suspend this fiber
-    ctx->suspend( lk);
-    BOOST_ASSERT( ! ctx->wait_is_linked() );
+    active_ctx->suspend( lk);
+    BOOST_ASSERT( ! active_ctx->wait_is_linked() );
 }
 
 bool
 recursive_timed_mutex::try_lock() noexcept {
-    context * ctx = context::active();
-    detail::spinlock_lock lk( wait_queue_splk_);
+    context * active_ctx = context::active();
+    detail::spinlock_lock lk{ wait_queue_splk_ };
     if ( nullptr == owner_) {
-        owner_ = ctx;
+        owner_ = active_ctx;
         count_ = 1;
-    } else if ( ctx == owner_) {
+    } else if ( active_ctx == owner_) {
         ++count_;
     }
     lk.unlock();
     // let other fiber release the lock
-    context::active()->yield();
-    return ctx == owner_;
+    active_ctx->yield();
+    return active_ctx == owner_;
 }
 
 void
 recursive_timed_mutex::unlock() {
-    context * ctx = context::active();
-    detail::spinlock_lock lk( wait_queue_splk_);
-    if ( ctx != owner_) {
-        throw lock_error(
+    context * active_ctx = context::active();
+    detail::spinlock_lock lk{ wait_queue_splk_ };
+    if ( active_ctx != owner_) {
+        throw lock_error{
                 std::make_error_code( std::errc::operation_not_permitted),
-                "boost fiber: no  privilege to perform the operation");
+                "boost fiber: no  privilege to perform the operation" };
     }
     if ( 0 == --count_) {
         if ( ! wait_queue_.empty() ) {
@@ -99,7 +99,7 @@ recursive_timed_mutex::unlock() {
             wait_queue_.pop_front();
             owner_ = ctx;
             count_ = 1;
-            context::active()->set_ready( ctx);
+            active_ctx->schedule( ctx);
         } else {
             owner_ = nullptr;
             return;