Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
d22a4e70
Commit
d22a4e70
authored
Mar 07, 2005
by
jimw@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Clean up merge
parents
fbbb58c6
2ca5cec8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
4 deletions
+13
-4
include/my_sys.h
include/my_sys.h
+1
-0
mysys/mf_iocache.c
mysys/mf_iocache.c
+12
-4
No files found.
include/my_sys.h
View file @
d22a4e70
...
...
@@ -279,6 +279,7 @@ enum loglevel {
enum
cache_type
{
READ_CACHE
,
WRITE_CACHE
,
APPEND_CACHE
,
/* Like WRITE_CACHE, but only append */
SEQ_READ_APPEND
/* sequential read or append */
,
READ_FIFO
,
READ_NET
,
WRITE_NET
};
...
...
mysys/mf_iocache.c
View file @
d22a4e70
...
...
@@ -87,7 +87,7 @@ static void my_aiowait(my_aio_result *result);
void
setup_io_cache
(
IO_CACHE
*
info
)
{
/* Ensure that my_b_tell() and my_b_bytes_in_cache works */
if
(
info
->
type
==
WRITE_CACHE
)
if
(
info
->
type
==
WRITE_CACHE
||
info
->
type
==
APPEND_CACHE
)
{
info
->
current_pos
=
&
info
->
write_pos
;
info
->
current_end
=
&
info
->
write_end
;
...
...
@@ -247,7 +247,7 @@ int init_io_cache(IO_CACHE *info, File file, uint cachesize,
}
#endif
if
(
type
==
WRITE_CACHE
)
if
(
type
==
WRITE_CACHE
||
type
==
APPEND_CACHE
)
info
->
write_end
=
info
->
buffer
+
info
->
buffer_length
-
(
seek_offset
&
(
IO_SIZE
-
1
));
else
...
...
@@ -318,6 +318,7 @@ my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type,
/* One can't do reinit with the following types */
DBUG_ASSERT
(
type
!=
READ_NET
&&
info
->
type
!=
READ_NET
&&
type
!=
WRITE_NET
&&
info
->
type
!=
WRITE_NET
&&
type
!=
APPEND_CACHE
&&
info
->
type
!=
APPEND_CACHE
&&
type
!=
SEQ_READ_APPEND
&&
info
->
type
!=
SEQ_READ_APPEND
);
/* If the whole file is in memory, avoid flushing to disk */
...
...
@@ -1123,7 +1124,8 @@ int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock)
my_off_t
pos_in_file
;
DBUG_ENTER
(
"my_b_flush_io_cache"
);
if
(
!
(
append_cache
=
(
info
->
type
==
SEQ_READ_APPEND
)))
if
(
!
(
append_cache
=
(
info
->
type
==
SEQ_READ_APPEND
||
info
->
type
==
APPEND_CACHE
)))
need_append_buffer_lock
=
0
;
if
(
info
->
type
==
WRITE_CACHE
||
append_cache
)
...
...
@@ -1170,7 +1172,13 @@ int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock)
else
{
info
->
end_of_file
+=
(
info
->
write_pos
-
info
->
append_read_pos
);
DBUG_ASSERT
(
info
->
end_of_file
==
my_tell
(
info
->
file
,
MYF
(
0
)));
/*
We only need to worry that info->end_of_file is really accurate
for SEQ_READ_APPEND. For APPEND_CACHE, it is possible that the
file is non-seekable, like a FIFO.
*/
DBUG_ASSERT
(
info
->
type
!=
SEQ_READ_APPEND
||
info
->
end_of_file
==
my_tell
(
info
->
file
,
MYF
(
0
)));
}
info
->
append_read_pos
=
info
->
write_pos
=
info
->
write_buffer
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment