diff options
author | sasha@mysql.sashanet.com <> | 2002-01-19 19:16:52 -0700 |
---|---|---|
committer | sasha@mysql.sashanet.com <> | 2002-01-19 19:16:52 -0700 |
commit | 56129ce634088b51dd60381711519c9125e8df72 (patch) | |
tree | 87da2fd65f79c28f4b97c4619f95b07797107d82 /mysys/mf_iocache2.c | |
parent | f4812729988dd07601a66ccb0636feaee8de9838 (diff) | |
download | mariadb-git-56129ce634088b51dd60381711519c9125e8df72.tar.gz |
Here comes a nasty patch, although I am not ready to push it yet. I will
first pull, merge,test, and get it to work.
The main change is the new replication code - now we have two slave threads
SQL thread and I/O thread. I have also re-written a lot of the code to
prepare for multi-master implementation.
I also documented IO_CACHE quite extensively and to some extend, THD class.
Diffstat (limited to 'mysys/mf_iocache2.c')
-rw-r--r-- | mysys/mf_iocache2.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c index a2f10ca3b9f..269e9892308 100644 --- a/mysys/mf_iocache2.c +++ b/mysys/mf_iocache2.c @@ -32,12 +32,26 @@ void my_b_seek(IO_CACHE *info,my_off_t pos) { - my_off_t offset = (pos - info->pos_in_file); + my_off_t offset; DBUG_ENTER("my_b_seek"); DBUG_PRINT("enter",("pos: %lu", (ulong) pos)); - if (info->type == READ_CACHE) + /* + TODO: verify that it is OK to do seek in the non-append + area in SEQ_READ_APPEND cache + */ + /* TODO: + a) see if this always works + b) see if there is a better way to make it work + */ + if (info->type == SEQ_READ_APPEND) + flush_io_cache(info); + + offset=(pos - info->pos_in_file); + + if (info->type == READ_CACHE || info->type == SEQ_READ_APPEND) { + /* TODO: explain why this works if pos < info->pos_in_file */ if ((ulonglong) offset < (ulonglong) (info->read_end - info->buffer)) { /* The read is in the current buffer; Reuse it */ |