diff options
author | unknown <monty@mysql.com> | 2005-04-30 09:46:08 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2005-04-30 09:46:08 +0300 |
commit | a6acc4462c9e9e3c5216a2092b9560eb9b15c84c (patch) | |
tree | e80b3783a194721c482640efffd48d32ad224e5f /mysys/mf_keycache.c | |
parent | e64d221e69ebaedd80115d6892838544ab9407fd (diff) | |
parent | 3b6043870d5764add22078f3785c059fe760e7f7 (diff) | |
download | mariadb-git-a6acc4462c9e9e3c5216a2092b9560eb9b15c84c.tar.gz |
Merge with 4.1
BitKeeper/etc/logging_ok:
auto-union
configure.in:
Auto merged
include/config-win.h:
Auto merged
include/my_global.h:
Auto merged
mysql-test/r/drop.result:
Auto merged
mysys/default.c:
Auto merged
mysys/mf_keycache.c:
Auto merged
sql/field.h:
Auto merged
sql/item.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/mysqld.cc:
Auto merged
BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
Auto merged
mysql-test/r/cast.result:
Merge
mysql-test/t/cast.test:
Merge
sql/sql_insert.cc:
Merge
sql/sql_select.cc:
Merge
Diffstat (limited to 'mysys/mf_keycache.c')
-rw-r--r-- | mysys/mf_keycache.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/mysys/mf_keycache.c b/mysys/mf_keycache.c index 4967b60cd68..2308536cd37 100644 --- a/mysys/mf_keycache.c +++ b/mysys/mf_keycache.c @@ -1025,8 +1025,8 @@ static void reg_requests(KEY_CACHE *keycache, BLOCK_LINK *block, int count) for a too long time (this time is determined by parameter age_threshold). */ -static inline void unreg_request(KEY_CACHE *keycache, - BLOCK_LINK *block, int at_end) +static void unreg_request(KEY_CACHE *keycache, + BLOCK_LINK *block, int at_end) { if (! --block->requests) { @@ -1045,10 +1045,13 @@ static inline void unreg_request(KEY_CACHE *keycache, } link_block(keycache, block, hot, (my_bool)at_end); block->last_hit_time= keycache->keycache_time; - if (++keycache->keycache_time - keycache->used_ins->last_hit_time > + keycache->keycache_time++; + + block= keycache->used_ins; + /* Check if we should link a hot block to the warm block */ + if (block && keycache->keycache_time - block->last_hit_time > keycache->age_threshold) { - block= keycache->used_ins; unlink_block(keycache, block); link_block(keycache, block, 0, 0); if (block->temperature != BLOCK_WARM) |