diff options
author | unknown <serg@janus.mylan> | 2006-10-13 11:37:27 +0200 |
---|---|---|
committer | unknown <serg@janus.mylan> | 2006-10-13 11:37:27 +0200 |
commit | c2872bafde6d6ec2444c293f7a8aa397eb1dbb59 (patch) | |
tree | bb08304c63c5526b2e85d0437c621af8d05148e6 /include/lf.h | |
parent | d551a55a1b236097e3912c66a91a17dea1600d7e (diff) | |
download | mariadb-git-c2872bafde6d6ec2444c293f7a8aa397eb1dbb59.tar.gz |
push for trnman review
(lockmanager still fails unit tests)
BitKeeper/deleted/.del-Makefile.am~4375ae3d4de2bdf0:
Delete: unittest/maria/Makefile.am
configure.in:
silence up configure warnings, don't generate unittest/maria/Makefile
include/atomic/nolock.h:
s/LOCK/LOCK_prefix/
include/atomic/x86-gcc.h:
s/LOCK/LOCK_prefix/
include/atomic/x86-msvc.h:
s/LOCK/LOCK_prefix/
include/lf.h:
pin asserts, renames
include/my_atomic.h:
move cleanup
include/my_bit.h:
s/uint/uint32/
mysys/lf_dynarray.c:
style fixes, split for() in two, remove if()s
mysys/lf_hash.c:
renames, minor fixes
mysys/my_atomic.c:
run-time assert -> compile-time assert
storage/maria/Makefile.am:
lockman here
storage/maria/unittest/Makefile.am:
new unit tests
storage/maria/unittest/trnman-t.c:
lots of changes
storage/maria/lockman.c:
many changes:
second meaning of "blocker"
portability: s/gettimeofday/my_getsystime/
move mutex/cond out of LOCK_OWNER - it creates a race condition
that will be fixed in a separate changeset
increment lm->count for every element, not only for distinct ones -
because we cannot decrease it for distinct elements only :(
storage/maria/lockman.h:
move mutex/cond out of LOCK_OWNER
storage/maria/trnman.c:
move mutex/cond out of LOCK_OWNER
atomic-ops to access short_trid_to_trn[]
storage/maria/trnman.h:
move mutex/cond out of LOCK_OWNER
storage/maria/unittest/lockman-t.c:
unit stress test
Diffstat (limited to 'include/lf.h')
-rw-r--r-- | include/lf.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/include/lf.h b/include/lf.h index 6a5047f6052..4c6765b2d40 100644 --- a/include/lf.h +++ b/include/lf.h @@ -88,8 +88,8 @@ nolock_wrap(lf_dynarray_iterate, int, pin manager for memory allocator */ -#define LF_PINBOX_PINS 3 -#define LF_PURGATORY_SIZE 11 +#define LF_PINBOX_PINS 4 +#define LF_PURGATORY_SIZE 10 typedef void lf_pinbox_free_func(void *, void *); @@ -112,9 +112,9 @@ typedef struct { -sizeof(void *)*(LF_PINBOX_PINS+LF_PURGATORY_SIZE+1)]; } LF_PINS; -#define lf_lock_by_pins(PINS) \ +#define lf_rwlock_by_pins(PINS) \ my_atomic_rwlock_wrlock(&(PINS)->pinbox->pinstack.lock) -#define lf_unlock_by_pins(PINS) \ +#define lf_rwunlock_by_pins(PINS) \ my_atomic_rwlock_wrunlock(&(PINS)->pinbox->pinstack.lock) /* @@ -139,11 +139,13 @@ typedef struct { #define _lf_unpin(PINS, PIN) _lf_pin(PINS, PIN, NULL) #define lf_pin(PINS, PIN, ADDR) \ do { \ - lf_lock_by_pins(PINS); \ + lf_rwlock_by_pins(PINS); \ _lf_pin(PINS, PIN, ADDR); \ - lf_unlock_by_pins(PINS); \ + lf_rwunlock_by_pins(PINS); \ } while (0) #define lf_unpin(PINS, PIN) lf_pin(PINS, PIN, NULL) +#define _lf_assert_pin(PINS, PIN) assert((PINS)->pin[PIN] != 0) +#define _lf_assert_unpin(PINS, PIN) assert((PINS)->pin[PIN]==0) void lf_pinbox_init(LF_PINBOX *pinbox, lf_pinbox_free_func *free_func, void * free_func_arg); |