mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Optimize performance schema likely/unlikely
Performance schema likely/unlikely assume that performance schema is enabled by default, which causes a performance degradation for default installations that doesn't have performance schema enabled. Fixed by changing the likely/unlikely in PS to assume it's not enabled. This can be changed by compiling with -DPSI_ON_BY_DEFAULT Other changes: - Added psi_likely/psi_unlikely that is depending on PSI_ON_BY_DEFAULT. psi_likely() is assumed to be true if PS is enabled. - Added likely/unlikely to some PS interface code. - Moved pfs_enabled to mysys (was initialized but not used before) - Added "if (pfs_likely(pfs_enabled))" around calls to PS to avoid an extra call if PS is not enabled. - Moved checking flag_global_instrumention before other flags to speed up the case when PS is not enabled.
This commit is contained in:
@@ -529,16 +529,18 @@ inline_mysql_file_fgets(
|
||||
{
|
||||
char *result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) size, src_file, src_line);
|
||||
result= fgets(str, size, file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, result ? strlen(result) : 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker) (&state, file->m_psi, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) size, src_file, src_line);
|
||||
result= fgets(str, size, file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, result ? strlen(result) : 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -555,16 +557,18 @@ inline_mysql_file_fgetc(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 1, src_file, src_line);
|
||||
result= fgetc(file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 1);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)(&state, file->m_psi, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 1, src_file, src_line);
|
||||
result= fgetc(file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 1);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -581,18 +585,20 @@ inline_mysql_file_fputs(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
bytes= str ? strlen(str) : 0;
|
||||
PSI_FILE_CALL(start_file_wait)(locker, bytes, src_file, src_line);
|
||||
result= fputs(str, file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker) (&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
bytes= str ? strlen(str) : 0;
|
||||
PSI_FILE_CALL(start_file_wait)(locker, bytes, src_file, src_line);
|
||||
result= fputs(str, file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -609,16 +615,18 @@ inline_mysql_file_fputc(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 1, src_file, src_line);
|
||||
result= fputc(c, file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 1);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker) (&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 1, src_file, src_line);
|
||||
result= fputc(c, file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 1);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -635,18 +643,20 @@ inline_mysql_file_fprintf(MYSQL_FILE *file, const char *format, ...)
|
||||
int result;
|
||||
va_list args;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, __FILE__, __LINE__);
|
||||
va_start(args, format);
|
||||
result= vfprintf(file->m_file, format, args);
|
||||
va_end(args);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) result);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker) (&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, __FILE__, __LINE__);
|
||||
va_start(args, format);
|
||||
result= vfprintf(file->m_file, format, args);
|
||||
va_end(args);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -665,16 +675,18 @@ inline_mysql_file_vfprintf(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= vfprintf(file->m_file, format, args);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) result);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker) (&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= vfprintf(file->m_file, format, args);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -691,16 +703,18 @@ inline_mysql_file_fflush(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_FLUSH);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= fflush(file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)(&state, file->m_psi, PSI_FILE_FLUSH);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= fflush(file->m_file);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -723,16 +737,18 @@ inline_mysql_file_fstat(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, filenr, PSI_FILE_FSTAT);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_fstat(filenr, stat_area, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, filenr, PSI_FILE_FSTAT);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_fstat(filenr, stat_area, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -749,16 +765,18 @@ inline_mysql_file_stat(
|
||||
{
|
||||
MY_STAT *result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)
|
||||
(&state, key, PSI_FILE_STAT, path, &locker);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line);
|
||||
result= my_stat(path, stat_area, flags);
|
||||
PSI_FILE_CALL(end_file_open_wait)(locker, result);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)(&state, key, PSI_FILE_STAT, path, &locker);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line);
|
||||
result= my_stat(path, stat_area, flags);
|
||||
PSI_FILE_CALL(end_file_open_wait)(locker, result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -775,17 +793,19 @@ inline_mysql_file_chsize(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, file, PSI_FILE_CHSIZE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) newlength, src_file,
|
||||
src_line);
|
||||
result= my_chsize(file, newlength, filler, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) newlength);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, file, PSI_FILE_CHSIZE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) newlength, src_file,
|
||||
src_line);
|
||||
result= my_chsize(file, newlength, filler, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) newlength);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -805,22 +825,24 @@ inline_mysql_file_fopen(
|
||||
if (likely(that != NULL))
|
||||
{
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)
|
||||
(&state, key, PSI_FILE_STREAM_OPEN, filename, that);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_open_wait)
|
||||
(locker, src_file, src_line);
|
||||
that->m_file= my_fopen(filename, flags, myFlags);
|
||||
that->m_psi= PSI_FILE_CALL(end_file_open_wait)(locker, that->m_file);
|
||||
if (unlikely(that->m_file == NULL))
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)(&state, key, PSI_FILE_STREAM_OPEN,
|
||||
filename, that);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
my_free(that);
|
||||
return NULL;
|
||||
PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line);
|
||||
that->m_file= my_fopen(filename, flags, myFlags);
|
||||
that->m_psi= PSI_FILE_CALL(end_file_open_wait)(locker, that->m_file);
|
||||
if (unlikely(that->m_file == NULL))
|
||||
{
|
||||
my_free(that);
|
||||
return NULL;
|
||||
}
|
||||
return that;
|
||||
}
|
||||
return that;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -846,17 +868,20 @@ inline_mysql_file_fclose(
|
||||
if (likely(file != NULL))
|
||||
{
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_STREAM_CLOSE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line);
|
||||
result= my_fclose(file->m_file, flags);
|
||||
PSI_FILE_CALL(end_file_close_wait)(locker, result);
|
||||
my_free(file);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)(&state, file->m_psi,
|
||||
PSI_FILE_STREAM_CLOSE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line);
|
||||
result= my_fclose(file->m_file, flags);
|
||||
PSI_FILE_CALL(end_file_close_wait)(locker, result);
|
||||
my_free(file);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -875,21 +900,23 @@ inline_mysql_file_fread(
|
||||
{
|
||||
size_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_read;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_fread(file->m_file, buffer, count, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_read= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_read= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_read);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_read;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)(&state, file->m_psi, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_fread(file->m_file, buffer, count, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_read= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_read= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_read);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -906,21 +933,23 @@ inline_mysql_file_fwrite(
|
||||
{
|
||||
size_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_written;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_fwrite(file->m_file, buffer, count, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_written= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_written= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_written);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_written;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)(&state, file->m_psi, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_fwrite(file->m_file, buffer, count, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_written= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_written= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_written);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -937,16 +966,18 @@ inline_mysql_file_fseek(
|
||||
{
|
||||
my_off_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_SEEK);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_fseek(file->m_file, pos, whence, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)(&state, file->m_psi, PSI_FILE_SEEK);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_fseek(file->m_file, pos, whence, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -963,16 +994,18 @@ inline_mysql_file_ftell(
|
||||
{
|
||||
my_off_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)
|
||||
(&state, file->m_psi, PSI_FILE_TELL);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_ftell(file->m_file, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_stream_locker)(&state, file->m_psi, PSI_FILE_TELL);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_ftell(file->m_file, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -989,16 +1022,19 @@ inline_mysql_file_create(
|
||||
{
|
||||
File file;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)
|
||||
(&state, key, PSI_FILE_CREATE, filename, &locker);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line);
|
||||
file= my_create(filename, create_flags, access_flags, myFlags);
|
||||
PSI_FILE_CALL(end_file_open_wait_and_bind_to_descriptor)(locker, file);
|
||||
return file;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)(&state, key, PSI_FILE_CREATE, filename,
|
||||
&locker);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line);
|
||||
file= my_create(filename, create_flags, access_flags, myFlags);
|
||||
PSI_FILE_CALL(end_file_open_wait_and_bind_to_descriptor)(locker, file);
|
||||
return file;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1035,16 +1071,19 @@ inline_mysql_file_open(
|
||||
{
|
||||
File file;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)
|
||||
(&state, key, PSI_FILE_OPEN, filename, &locker);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line);
|
||||
file= my_open(filename, flags, myFlags);
|
||||
PSI_FILE_CALL(end_file_open_wait_and_bind_to_descriptor)(locker, file);
|
||||
return file;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)(&state, key, PSI_FILE_OPEN, filename,
|
||||
&locker);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line);
|
||||
file= my_open(filename, flags, myFlags);
|
||||
PSI_FILE_CALL(end_file_open_wait_and_bind_to_descriptor)(locker, file);
|
||||
return file;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1061,16 +1100,18 @@ inline_mysql_file_close(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, file, PSI_FILE_CLOSE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line);
|
||||
result= my_close(file, flags);
|
||||
PSI_FILE_CALL(end_file_close_wait)(locker, result);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, file, PSI_FILE_CLOSE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line);
|
||||
result= my_close(file, flags);
|
||||
PSI_FILE_CALL(end_file_close_wait)(locker, result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1087,21 +1128,23 @@ inline_mysql_file_read(
|
||||
{
|
||||
size_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_read;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, file, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_read(file, buffer, count, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_read= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_read= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_read);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_read;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, file, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_read(file, buffer, count, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_read= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_read= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_read);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1118,21 +1161,23 @@ inline_mysql_file_write(
|
||||
{
|
||||
size_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_written;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, file, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_write(file, buffer, count, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_written= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_written= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_written);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_written;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, file, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_write(file, buffer, count, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_written= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_written= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_written);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1149,21 +1194,23 @@ inline_mysql_file_pread(
|
||||
{
|
||||
size_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_read;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, file, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_pread(file, buffer, count, offset, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_read= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_read= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_read);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_read;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, file, PSI_FILE_READ);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_pread(file, buffer, count, offset, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_read= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_read= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_read);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1180,21 +1227,23 @@ inline_mysql_file_pwrite(
|
||||
{
|
||||
size_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_written;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, file, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_pwrite(file, buffer, count, offset, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_written= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_written= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_written);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
size_t bytes_written;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, file, PSI_FILE_WRITE);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, count, src_file, src_line);
|
||||
result= my_pwrite(file, buffer, count, offset, flags);
|
||||
if (flags & (MY_NABP | MY_FNABP))
|
||||
bytes_written= (result == 0) ? count : 0;
|
||||
else
|
||||
bytes_written= (result != MY_FILE_ERROR) ? result : 0;
|
||||
PSI_FILE_CALL(end_file_wait)(locker, bytes_written);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1211,16 +1260,18 @@ inline_mysql_file_seek(
|
||||
{
|
||||
my_off_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, file, PSI_FILE_SEEK);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_seek(file, pos, whence, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, file, PSI_FILE_SEEK);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_seek(file, pos, whence, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1237,16 +1288,18 @@ inline_mysql_file_tell(
|
||||
{
|
||||
my_off_t result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, file, PSI_FILE_TELL);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_tell(file, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, file, PSI_FILE_TELL);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_tell(file, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1263,16 +1316,18 @@ inline_mysql_file_delete(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)
|
||||
(&state, key, PSI_FILE_DELETE, name, &locker);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line);
|
||||
result= my_delete(name, flags);
|
||||
PSI_FILE_CALL(end_file_close_wait)(locker, result);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)(&state, key, PSI_FILE_DELETE, name, &locker);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line);
|
||||
result= my_delete(name, flags);
|
||||
PSI_FILE_CALL(end_file_close_wait)(locker, result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1289,16 +1344,18 @@ inline_mysql_file_rename(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)
|
||||
(&state, key, PSI_FILE_RENAME, to, &locker);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_rename(from, to, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)(&state, key, PSI_FILE_RENAME, to, &locker);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_rename(from, to, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1317,17 +1374,20 @@ inline_mysql_file_create_with_symlink(
|
||||
{
|
||||
File file;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)
|
||||
(&state, key, PSI_FILE_CREATE, filename, &locker);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line);
|
||||
file= my_create_with_symlink(linkname, filename, create_flags, access_flags,
|
||||
flags);
|
||||
PSI_FILE_CALL(end_file_open_wait_and_bind_to_descriptor)(locker, file);
|
||||
return file;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)(&state, key, PSI_FILE_CREATE, filename,
|
||||
&locker);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_open_wait)(locker, src_file, src_line);
|
||||
file= my_create_with_symlink(linkname, filename, create_flags, access_flags,
|
||||
flags);
|
||||
PSI_FILE_CALL(end_file_open_wait_and_bind_to_descriptor)(locker, file);
|
||||
return file;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1348,16 +1408,19 @@ inline_mysql_file_delete_with_symlink(
|
||||
char buf[FN_REFLEN];
|
||||
char *fullname= fn_format(buf, name, "", ext, MY_UNPACK_FILENAME | MY_APPEND_EXT);
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)
|
||||
(&state, key, PSI_FILE_DELETE, fullname, &locker);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line);
|
||||
result= my_handler_delete_with_symlink(fullname, flags);
|
||||
PSI_FILE_CALL(end_file_close_wait)(locker, result);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)(&state, key, PSI_FILE_DELETE, fullname,
|
||||
&locker);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_close_wait)(locker, src_file, src_line);
|
||||
result= my_handler_delete_with_symlink(fullname, flags);
|
||||
PSI_FILE_CALL(end_file_close_wait)(locker, result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1375,16 +1438,18 @@ inline_mysql_file_rename_with_symlink(
|
||||
{
|
||||
int result;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)
|
||||
(&state, key, PSI_FILE_RENAME, to, &locker);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_rename_with_symlink(from, to, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_name_locker)(&state, key, PSI_FILE_RENAME, to, &locker);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_rename_with_symlink(from, to, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1401,16 +1466,18 @@ inline_mysql_file_sync(
|
||||
{
|
||||
int result= 0;
|
||||
#ifdef HAVE_PSI_FILE_INTERFACE
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)
|
||||
(&state, fd, PSI_FILE_SYNC);
|
||||
if (likely(locker != NULL))
|
||||
if (psi_likely(pfs_enabled))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_sync(fd, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
struct PSI_file_locker *locker;
|
||||
PSI_file_locker_state state;
|
||||
locker= PSI_FILE_CALL(get_thread_file_descriptor_locker)(&state, fd, PSI_FILE_SYNC);
|
||||
if (likely(locker != NULL))
|
||||
{
|
||||
PSI_FILE_CALL(start_file_wait)(locker, (size_t) 0, src_file, src_line);
|
||||
result= my_sync(fd, flags);
|
||||
PSI_FILE_CALL(end_file_wait)(locker, (size_t) 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user