mirror of
https://github.com/MariaDB/server.git
synced 2025-08-30 11:22:14 +03:00
Bug#59579 rw_lock_debug_print outputs to stderr
rw_lock_debug_print(): Add parameter FILE* for specifying the output stream. rw_lock_list_print_info(): Invoke rw_lock_debug_print() on file, not stderr.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
/******************************************************
|
/******************************************************
|
||||||
The read-write lock (for threads, not for database transactions)
|
The read-write lock (for threads, not for database transactions)
|
||||||
|
|
||||||
(c) 1995 Innobase Oy
|
Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
|
|
||||||
Created 9/11/1995 Heikki Tuuri
|
Created 9/11/1995 Heikki Tuuri
|
||||||
*******************************************************/
|
*******************************************************/
|
||||||
@@ -409,6 +409,7 @@ Prints info of a debug struct. */
|
|||||||
void
|
void
|
||||||
rw_lock_debug_print(
|
rw_lock_debug_print(
|
||||||
/*================*/
|
/*================*/
|
||||||
|
FILE* f, /* in: output stream */
|
||||||
rw_lock_debug_t* info); /* in: debug struct */
|
rw_lock_debug_t* info); /* in: debug struct */
|
||||||
#endif /* UNIV_SYNC_DEBUG */
|
#endif /* UNIV_SYNC_DEBUG */
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
/******************************************************
|
/******************************************************
|
||||||
The wait array used in synchronization primitives
|
The wait array used in synchronization primitives
|
||||||
|
|
||||||
(c) 1995 Innobase Oy
|
Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
|
|
||||||
Created 9/5/1995 Heikki Tuuri
|
Created 9/5/1995 Heikki Tuuri
|
||||||
*******************************************************/
|
*******************************************************/
|
||||||
@@ -709,7 +709,7 @@ print:
|
|||||||
fprintf(stderr, "rw-lock %p ",
|
fprintf(stderr, "rw-lock %p ",
|
||||||
(void*) lock);
|
(void*) lock);
|
||||||
sync_array_cell_print(stderr, cell);
|
sync_array_cell_print(stderr, cell);
|
||||||
rw_lock_debug_print(debug);
|
rw_lock_debug_print(stderr, debug);
|
||||||
return(TRUE);
|
return(TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
/******************************************************
|
/******************************************************
|
||||||
The read-write lock (for thread synchronization)
|
The read-write lock (for thread synchronization)
|
||||||
|
|
||||||
(c) 1995 Innobase Oy
|
Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
|
|
||||||
Created 9/11/1995 Heikki Tuuri
|
Created 9/11/1995 Heikki Tuuri
|
||||||
*******************************************************/
|
*******************************************************/
|
||||||
@@ -830,7 +830,7 @@ rw_lock_list_print_info(
|
|||||||
|
|
||||||
info = UT_LIST_GET_FIRST(lock->debug_list);
|
info = UT_LIST_GET_FIRST(lock->debug_list);
|
||||||
while (info != NULL) {
|
while (info != NULL) {
|
||||||
rw_lock_debug_print(info);
|
rw_lock_debug_print(file, info);
|
||||||
info = UT_LIST_GET_NEXT(list, info);
|
info = UT_LIST_GET_NEXT(list, info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -870,7 +870,7 @@ rw_lock_print(
|
|||||||
|
|
||||||
info = UT_LIST_GET_FIRST(lock->debug_list);
|
info = UT_LIST_GET_FIRST(lock->debug_list);
|
||||||
while (info != NULL) {
|
while (info != NULL) {
|
||||||
rw_lock_debug_print(info);
|
rw_lock_debug_print(stderr, info);
|
||||||
info = UT_LIST_GET_NEXT(list, info);
|
info = UT_LIST_GET_NEXT(list, info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -882,28 +882,29 @@ Prints info of a debug struct. */
|
|||||||
void
|
void
|
||||||
rw_lock_debug_print(
|
rw_lock_debug_print(
|
||||||
/*================*/
|
/*================*/
|
||||||
|
FILE* f, /* in: output stream */
|
||||||
rw_lock_debug_t* info) /* in: debug struct */
|
rw_lock_debug_t* info) /* in: debug struct */
|
||||||
{
|
{
|
||||||
ulint rwt;
|
ulint rwt;
|
||||||
|
|
||||||
rwt = info->lock_type;
|
rwt = info->lock_type;
|
||||||
|
|
||||||
fprintf(stderr, "Locked: thread %lu file %s line %lu ",
|
fprintf(f, "Locked: thread %lu file %s line %lu ",
|
||||||
(ulong) os_thread_pf(info->thread_id), info->file_name,
|
(ulong) os_thread_pf(info->thread_id), info->file_name,
|
||||||
(ulong) info->line);
|
(ulong) info->line);
|
||||||
if (rwt == RW_LOCK_SHARED) {
|
if (rwt == RW_LOCK_SHARED) {
|
||||||
fputs("S-LOCK", stderr);
|
fputs("S-LOCK", f);
|
||||||
} else if (rwt == RW_LOCK_EX) {
|
} else if (rwt == RW_LOCK_EX) {
|
||||||
fputs("X-LOCK", stderr);
|
fputs("X-LOCK", f);
|
||||||
} else if (rwt == RW_LOCK_WAIT_EX) {
|
} else if (rwt == RW_LOCK_WAIT_EX) {
|
||||||
fputs("WAIT X-LOCK", stderr);
|
fputs("WAIT X-LOCK", f);
|
||||||
} else {
|
} else {
|
||||||
ut_error;
|
ut_error;
|
||||||
}
|
}
|
||||||
if (info->pass != 0) {
|
if (info->pass != 0) {
|
||||||
fprintf(stderr, " pass value %lu", (ulong) info->pass);
|
fprintf(f, " pass value %lu", (ulong) info->pass);
|
||||||
}
|
}
|
||||||
putc('\n', stderr);
|
putc('\n', f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************
|
/*******************************************************************
|
||||||
|
@@ -1,3 +1,9 @@
|
|||||||
|
2011-01-18 The InnoDB Team
|
||||||
|
|
||||||
|
* include/sync0rw.h, sync/sync0arr.c, sync/sync0rw.c:
|
||||||
|
Fix Bug#59579 rw_lock_debug_print outputs to stderr, not to
|
||||||
|
SHOW ENGINE INNODB STATUS
|
||||||
|
|
||||||
2011-01-14 The InnoDB Team
|
2011-01-14 The InnoDB Team
|
||||||
* btr/btr0cur.c, dict/dict0dict.c, handler/ha_innodb.cc,
|
* btr/btr0cur.c, dict/dict0dict.c, handler/ha_innodb.cc,
|
||||||
include/btr0cur.h, include/dict0mem.h, include/rem0cmp.h,
|
include/btr0cur.h, include/dict0mem.h, include/rem0cmp.h,
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
||||||
Copyright (c) 1995, 2010, Innobase Oy. All Rights Reserved.
|
Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
Copyright (c) 2008, Google Inc.
|
Copyright (c) 2008, Google Inc.
|
||||||
|
|
||||||
Portions of this file contain modifications contributed and copyrighted by
|
Portions of this file contain modifications contributed and copyrighted by
|
||||||
@@ -490,6 +490,7 @@ UNIV_INTERN
|
|||||||
void
|
void
|
||||||
rw_lock_debug_print(
|
rw_lock_debug_print(
|
||||||
/*================*/
|
/*================*/
|
||||||
|
FILE* f, /*!< in: output stream */
|
||||||
rw_lock_debug_t* info); /*!< in: debug struct */
|
rw_lock_debug_t* info); /*!< in: debug struct */
|
||||||
#endif /* UNIV_SYNC_DEBUG */
|
#endif /* UNIV_SYNC_DEBUG */
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
||||||
Copyright (c) 1995, 2009, Innobase Oy. All Rights Reserved.
|
Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
Copyright (c) 2008, Google Inc.
|
Copyright (c) 2008, Google Inc.
|
||||||
|
|
||||||
Portions of this file contain modifications contributed and copyrighted by
|
Portions of this file contain modifications contributed and copyrighted by
|
||||||
@@ -715,7 +715,7 @@ print:
|
|||||||
fprintf(stderr, "rw-lock %p ",
|
fprintf(stderr, "rw-lock %p ",
|
||||||
(void*) lock);
|
(void*) lock);
|
||||||
sync_array_cell_print(stderr, cell);
|
sync_array_cell_print(stderr, cell);
|
||||||
rw_lock_debug_print(debug);
|
rw_lock_debug_print(stderr, debug);
|
||||||
return(TRUE);
|
return(TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
||||||
Copyright (c) 1995, 2009, Innobase Oy. All Rights Reserved.
|
Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
Copyright (c) 2008, Google Inc.
|
Copyright (c) 2008, Google Inc.
|
||||||
|
|
||||||
Portions of this file contain modifications contributed and copyrighted by
|
Portions of this file contain modifications contributed and copyrighted by
|
||||||
@@ -925,7 +925,7 @@ rw_lock_list_print_info(
|
|||||||
|
|
||||||
info = UT_LIST_GET_FIRST(lock->debug_list);
|
info = UT_LIST_GET_FIRST(lock->debug_list);
|
||||||
while (info != NULL) {
|
while (info != NULL) {
|
||||||
rw_lock_debug_print(info);
|
rw_lock_debug_print(file, info);
|
||||||
info = UT_LIST_GET_NEXT(list, info);
|
info = UT_LIST_GET_NEXT(list, info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -973,7 +973,7 @@ rw_lock_print(
|
|||||||
|
|
||||||
info = UT_LIST_GET_FIRST(lock->debug_list);
|
info = UT_LIST_GET_FIRST(lock->debug_list);
|
||||||
while (info != NULL) {
|
while (info != NULL) {
|
||||||
rw_lock_debug_print(info);
|
rw_lock_debug_print(stderr, info);
|
||||||
info = UT_LIST_GET_NEXT(list, info);
|
info = UT_LIST_GET_NEXT(list, info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -985,28 +985,29 @@ UNIV_INTERN
|
|||||||
void
|
void
|
||||||
rw_lock_debug_print(
|
rw_lock_debug_print(
|
||||||
/*================*/
|
/*================*/
|
||||||
|
FILE* f, /*!< in: output stream */
|
||||||
rw_lock_debug_t* info) /*!< in: debug struct */
|
rw_lock_debug_t* info) /*!< in: debug struct */
|
||||||
{
|
{
|
||||||
ulint rwt;
|
ulint rwt;
|
||||||
|
|
||||||
rwt = info->lock_type;
|
rwt = info->lock_type;
|
||||||
|
|
||||||
fprintf(stderr, "Locked: thread %lu file %s line %lu ",
|
fprintf(f, "Locked: thread %lu file %s line %lu ",
|
||||||
(ulong) os_thread_pf(info->thread_id), info->file_name,
|
(ulong) os_thread_pf(info->thread_id), info->file_name,
|
||||||
(ulong) info->line);
|
(ulong) info->line);
|
||||||
if (rwt == RW_LOCK_SHARED) {
|
if (rwt == RW_LOCK_SHARED) {
|
||||||
fputs("S-LOCK", stderr);
|
fputs("S-LOCK", f);
|
||||||
} else if (rwt == RW_LOCK_EX) {
|
} else if (rwt == RW_LOCK_EX) {
|
||||||
fputs("X-LOCK", stderr);
|
fputs("X-LOCK", f);
|
||||||
} else if (rwt == RW_LOCK_WAIT_EX) {
|
} else if (rwt == RW_LOCK_WAIT_EX) {
|
||||||
fputs("WAIT X-LOCK", stderr);
|
fputs("WAIT X-LOCK", f);
|
||||||
} else {
|
} else {
|
||||||
ut_error;
|
ut_error;
|
||||||
}
|
}
|
||||||
if (info->pass != 0) {
|
if (info->pass != 0) {
|
||||||
fprintf(stderr, " pass value %lu", (ulong) info->pass);
|
fprintf(f, " pass value %lu", (ulong) info->pass);
|
||||||
}
|
}
|
||||||
putc('\n', stderr);
|
putc('\n', f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************//**
|
/***************************************************************//**
|
||||||
|
Reference in New Issue
Block a user