Changes in uspace/lib/c/generic/fibril_synch.c [c81b6f2:9414abc] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/fibril_synch.c
rc81b6f2 r9414abc 139 139 static void _fibril_mutex_unlock_unsafe(fibril_mutex_t *fm) 140 140 { 141 assert(fm->counter <= 0); 141 142 if (fm->counter++ < 0) { 142 143 link_t *tmp; … … 164 165 void fibril_mutex_unlock(fibril_mutex_t *fm) 165 166 { 166 assert(fibril_mutex_is_locked(fm));167 167 futex_down(&async_futex); 168 168 _fibril_mutex_unlock_unsafe(fm); 169 169 futex_up(&async_futex); 170 }171 172 bool fibril_mutex_is_locked(fibril_mutex_t *fm)173 {174 bool locked = false;175 176 futex_down(&async_futex);177 if (fm->counter <= 0)178 locked = true;179 futex_up(&async_futex);180 181 return locked;182 170 } 183 171 … … 242 230 { 243 231 futex_down(&async_futex); 232 assert(frw->readers || (frw->writers == 1)); 244 233 if (frw->readers) { 245 234 if (--frw->readers) { … … 307 296 void fibril_rwlock_read_unlock(fibril_rwlock_t *frw) 308 297 { 309 assert(fibril_rwlock_is_read_locked(frw));310 298 _fibril_rwlock_common_unlock(frw); 311 299 } … … 313 301 void fibril_rwlock_write_unlock(fibril_rwlock_t *frw) 314 302 { 315 assert(fibril_rwlock_is_write_locked(frw));316 303 _fibril_rwlock_common_unlock(frw); 317 }318 319 bool fibril_rwlock_is_read_locked(fibril_rwlock_t *frw)320 {321 bool locked = false;322 323 futex_down(&async_futex);324 if (frw->readers)325 locked = true;326 futex_up(&async_futex);327 328 return locked;329 }330 331 bool fibril_rwlock_is_write_locked(fibril_rwlock_t *frw)332 {333 bool locked = false;334 335 futex_down(&async_futex);336 if (frw->writers) {337 assert(frw->writers == 1);338 locked = true;339 }340 futex_up(&async_futex);341 342 return locked;343 }344 345 bool fibril_rwlock_is_locked(fibril_rwlock_t *frw)346 {347 return fibril_rwlock_is_read_locked(frw) ||348 fibril_rwlock_is_write_locked(frw);349 304 } 350 305 … … 359 314 { 360 315 awaiter_t wdata; 361 362 assert(fibril_mutex_is_locked(fm));363 316 364 317 if (timeout < 0)
Note:
See TracChangeset
for help on using the changeset viewer.