mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
more post-review fixes - comments, renames, error checks in unit tests
concurrency bug in lock manager include/my_global.h: compile-time assert macro mysys/my_atomic.c: use compile_time_assert() macro storage/maria/lockman.c: bug in concurrent lockdelete (with retries) storage/maria/trnman.c: more post-review fixes - comments, renames storage/maria/trnman.h: more post-review fixes - comments storage/maria/unittest/lockman-t.c: friendlier error checks storage/maria/unittest/trnman-t.c: friendlier error checks
This commit is contained in:
parent
a79868ae99
commit
fb818dd7b0
7 changed files with 87 additions and 28 deletions
|
|
@ -421,13 +421,14 @@ static int lockinsert(LOCK * volatile *head, LOCK *node, LF_PINS *pins,
|
|||
}
|
||||
if (!(res & NEED_TO_WAIT))
|
||||
node->flags|= ACTIVE;
|
||||
else
|
||||
node->flags&= ~ACTIVE; /* if we're retrying on REPEAT_ONCE_MORE */
|
||||
node->link= (intptr)cursor.curr;
|
||||
DBUG_ASSERT(node->link != (intptr)node);
|
||||
DBUG_ASSERT(cursor.prev != &node->link);
|
||||
if (!my_atomic_casptr((void **)cursor.prev, (void **)&cursor.curr, node))
|
||||
{
|
||||
res= REPEAT_ONCE_MORE;
|
||||
node->flags&= ~ACTIVE;
|
||||
}
|
||||
if (res & LOCK_UPGRADE)
|
||||
cursor.upgrade_from->flags|= IGNORE_ME;
|
||||
}
|
||||
|
|
@ -496,7 +497,11 @@ static int lockdelete(LOCK * volatile *head, LOCK *node, LF_PINS *pins)
|
|||
lockfind(head, node, &cursor, pins);
|
||||
}
|
||||
else
|
||||
{
|
||||
res= REPEAT_ONCE_MORE;
|
||||
if (cursor.upgrade_from) /* to satisfy the assert in lockfind */
|
||||
cursor.upgrade_from->flags|= IGNORE_ME;
|
||||
}
|
||||
} while (res == REPEAT_ONCE_MORE);
|
||||
_lf_unpin(pins, 0);
|
||||
_lf_unpin(pins, 1);
|
||||
|
|
@ -744,7 +749,7 @@ static char *lock2str[]=
|
|||
void print_lockhash(LOCKMAN *lm)
|
||||
{
|
||||
LOCK *el= *(LOCK **)_lf_dynarray_lvalue(&lm->array, 0);
|
||||
printf("hash: size:%u count:%u\n", lm->size, lm->count);
|
||||
printf("hash: size %u count %u\n", lm->size, lm->count);
|
||||
while (el)
|
||||
{
|
||||
intptr next= el->link;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue