mirror of
https://github.com/MariaDB/server.git
synced 2025-02-02 03:51:50 +01:00
Closes #1321
Remove locks around pread (pread in windows is now thread safe) git-svn-id: file:///svn/toku/tokudb@8740 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
parent
9dbc0241d9
commit
afdb6c6bb9
1 changed files with 0 additions and 14 deletions
|
@ -362,9 +362,7 @@ int toku_deserialize_brtnode_from (int fd, BLOCKNUM blocknum, u_int32_t fullhash
|
|||
u_int32_t uncompressed_size;
|
||||
{
|
||||
// get the compressed size
|
||||
lock_for_pwrite();
|
||||
r = pread(fd, uncompressed_header, sizeof(uncompressed_header), offset);
|
||||
unlock_for_pwrite();
|
||||
//printf("%s:%d r=%d the datasize=%d\n", __FILE__, __LINE__, r, toku_ntohl(datasize_n));
|
||||
if (r!=(int)sizeof(uncompressed_header)) {
|
||||
if (r==-1) r=errno;
|
||||
|
@ -384,9 +382,7 @@ int toku_deserialize_brtnode_from (int fd, BLOCKNUM blocknum, u_int32_t fullhash
|
|||
assert(compressed_data);
|
||||
|
||||
{
|
||||
lock_for_pwrite();
|
||||
ssize_t rlen=pread(fd, compressed_data, compressed_size, offset+uncompressed_magic_len + compression_header_len);
|
||||
unlock_for_pwrite();
|
||||
//printf("%s:%d pread->%d offset=%ld datasize=%d\n", __FILE__, __LINE__, r, offset, compressed_size + uncompressed_magic_len + compression_header_len);
|
||||
assert((size_t)rlen==compressed_size);
|
||||
//printf("Got %d %d %d %d\n", rc.buf[0], rc.buf[1], rc.buf[2], rc.buf[3]);
|
||||
|
@ -750,9 +746,7 @@ deserialize_brtheader (u_int32_t size, int fd, DISKOFF off, struct brt_header **
|
|||
if (rc.size<=0) { ret = EINVAL; goto died1; }
|
||||
rc.ndone = 0;
|
||||
{
|
||||
lock_for_pwrite();
|
||||
ssize_t r = pread(fd, rc.buf, size-12, off+12);
|
||||
unlock_for_pwrite();
|
||||
if (r!=(ssize_t)size-12) { ret = EINVAL; goto died1; }
|
||||
}
|
||||
h->dirty=0;
|
||||
|
@ -850,9 +844,7 @@ int toku_deserialize_brtheader_from (int fd, BLOCKNUM blocknum, struct brt_heade
|
|||
//printf("%s:%d malloced %p\n", __FILE__, __LINE__, h);
|
||||
|
||||
char magic[12];
|
||||
lock_for_pwrite();
|
||||
ssize_t r = pread(fd, magic, 12, offset);
|
||||
unlock_for_pwrite();
|
||||
if (r==0) return -1;
|
||||
if (r<0) return errno;
|
||||
if (r!=12) return EINVAL;
|
||||
|
@ -924,9 +916,7 @@ int toku_serialize_fifo_at (int fd, toku_off_t freeoff, FIFO fifo) {
|
|||
static int
|
||||
read_int (int fd, toku_off_t *at, u_int32_t *result) {
|
||||
int v;
|
||||
lock_for_pwrite();
|
||||
ssize_t r = pread(fd, &v, 4, *at);
|
||||
unlock_for_pwrite();
|
||||
if (r<0) return errno;
|
||||
assert(r==4);
|
||||
*result = toku_ntohl(v);
|
||||
|
@ -936,9 +926,7 @@ read_int (int fd, toku_off_t *at, u_int32_t *result) {
|
|||
|
||||
static int
|
||||
read_char (int fd, toku_off_t *at, char *result) {
|
||||
lock_for_pwrite();
|
||||
ssize_t r = pread(fd, result, 1, *at);
|
||||
unlock_for_pwrite();
|
||||
if (r<0) return errno;
|
||||
assert(r==1);
|
||||
(*at)++;
|
||||
|
@ -959,9 +947,7 @@ static int
|
|||
read_nbytes (int fd, toku_off_t *at, char **data, u_int32_t len) {
|
||||
char *result = toku_malloc(len);
|
||||
if (result==0) return errno;
|
||||
lock_for_pwrite();
|
||||
ssize_t r = pread(fd, result, len, *at);
|
||||
unlock_for_pwrite();
|
||||
//printf("%s:%d read %d bytes at %" PRId64 ", which are %s\n", __FILE__, __LINE__, len, *at, result);
|
||||
if (r<0) return errno;
|
||||
assert(r==(ssize_t)len);
|
||||
|
|
Loading…
Add table
Reference in a new issue