Changeset 9283830 in mainline for uspace/lib/cpp/src/mutex.cpp
- Timestamp:
- 2018-07-05T21:41:20Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7e7c1aac
- Parents:
- c4049e6
- git-author:
- Dzejrou <dzejrou@…> (2018-03-28 14:21:53)
- git-committer:
- Dzejrou <dzejrou@…> (2018-07-05 21:41:20)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/cpp/src/mutex.cpp
rc4049e6 r9283830 31 31 namespace std 32 32 { 33 constexpr mutex::mutex() noexcept34 : mtx_{}35 {36 fibril_mutex_initialize(&mtx_);37 }38 39 33 mutex::~mutex() 40 { 41 if (fibril_mutex_is_locked(&mtx_)) 42 { 43 /** 44 * According to the standard, this is 45 * undefined behavior, we could unlock the 46 * mutex, but that could cause issues if we 47 * are not the current owner. 48 */ 49 // fibril_mutex_unlock(&mtx_); 50 } 51 } 34 { /* DUMMY BODY */ } 52 35 53 36 void mutex::lock() 54 37 { 55 fibril_mutex_lock(&mtx_);38 aux::threading::mutex::lock(mtx_); 56 39 } 57 40 58 41 bool mutex::try_lock() 59 42 { 60 return fibril_mutex_trylock(&mtx_);43 return aux::threading::mutex::try_lock(mtx_); 61 44 } 62 45 63 46 void mutex::unlock() 64 47 { 65 fibril_mutex_unlock(&mtx_);48 aux::threading::mutex::unlock(mtx_); 66 49 } 67 50 … … 74 57 : mtx_{}, lock_level_{}, owner_{} 75 58 { 76 fibril_mutex_initialize(&mtx_);59 aux::threading::mutex::init(mtx_); 77 60 } 78 61 … … 84 67 if (owner_ != this_thread::get_id()) 85 68 { 86 fibril_mutex_lock(&mtx_);69 aux::threading::mutex::lock(mtx_); 87 70 owner_ = this_thread::get_id(); 88 71 lock_level_ = 1; … … 96 79 if (owner_ != this_thread::get_id()) 97 80 { 98 bool res = fibril_mutex_trylock(&mtx_);81 bool res = aux::threading::mutex::try_lock(mtx_); 99 82 if (res) 100 83 { … … 116 99 return; 117 100 else if (--lock_level_ == 0) 118 fibril_mutex_unlock(&mtx_);101 aux::threading::mutex::unlock(mtx_); 119 102 } 120 103
Note:
See TracChangeset
for help on using the changeset viewer.