Function report |
Source Code:kernel\locking\qrwlock.c |
Create Date:2022-07-28 09:53:25 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:queued_write_lock_slowpath - acquire write lock of a queue rwlock*@lock : Pointer to queue rwlock structure
Proto:void queued_write_lock_slowpath(struct qrwlock *lock)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct qrwlock * | lock |
| 68 | If Not atomic_read( & cnts) && atomic_cmpxchg_acquire( & cnts, 0, A writer holds the lock ) == 0 Then Go to unlock |
| 73 | atomic_add(A writer is waiting , & cnts) |
| 76 | Do |
| 77 | atomic_cond_read_acquire( & cnts, VAL == A writer is waiting ) |
| 78 | When atomic_cmpxchg_relaxed( & cnts, A writer is waiting , A writer holds the lock ) != A writer is waiting cycle |
| 80 | unlock : |
| 81 | arch_spin_unlock( & wait_lock) |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |