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
c02efd8f
Commit
c02efd8f
authored
Apr 02, 2007
by
tomas@whalegate.ndb.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-telco-gca
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
parents
9a21d1d5
dd6073f5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
10 deletions
+25
-10
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+25
-10
No files found.
sql/ha_ndbcluster.cc
View file @
c02efd8f
...
...
@@ -6695,7 +6695,8 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
DBUG_RETURN
(
NULL
);
}
List
<
NDB_SHARE
>
util_open_tables
;
uint
share_list_size
=
0
;
NDB_SHARE
**
share_list
=
NULL
;
set_timespec
(
abstime
,
0
);
for
(;;)
{
...
...
@@ -6725,7 +6726,22 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
/* Lock mutex and fill list with pointers to all open tables */
NDB_SHARE
*
share
;
pthread_mutex_lock
(
&
ndbcluster_mutex
);
for
(
uint
i
=
0
;
i
<
ndbcluster_open_tables
.
records
;
i
++
)
uint
i
,
record_count
=
ndbcluster_open_tables
.
records
;
if
(
share_list_size
<
record_count
)
{
NDB_SHARE
**
new_share_list
=
new
NDB_SHARE
*
[
record_count
];
if
(
!
new_share_list
)
{
sql_print_warning
(
"ndb util thread: malloc failure, "
"query cache not maintained properly"
);
pthread_mutex_unlock
(
&
ndbcluster_mutex
);
goto
next
;
// At least do not crash
}
delete
[]
share_list
;
share_list_size
=
record_count
;
share_list
=
new_share_list
;
}
for
(
i
=
0
;
i
<
record_count
;
i
++
)
{
share
=
(
NDB_SHARE
*
)
hash_element
(
&
ndbcluster_open_tables
,
i
);
share
->
use_count
++
;
/* Make sure the table can't be closed */
...
...
@@ -6734,14 +6750,14 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
i
,
share
->
table_name
,
share
->
use_count
));
/* Store pointer to table */
util_open_tables
.
push_back
(
share
)
;
share_list
[
i
]
=
share
;
}
pthread_mutex_unlock
(
&
ndbcluster_mutex
);
/* Iterate through the open files list */
List_iterator_fast
<
NDB_SHARE
>
it
(
util_open_tables
);
while
((
share
=
it
++
))
/* Iterate through the open files list */
for
(
i
=
0
;
i
<
record_count
;
i
++
)
{
share
=
share_list
[
i
];
/* Split tab- and dbname */
char
buf
[
FN_REFLEN
];
char
*
tabname
,
*
db
;
...
...
@@ -6790,10 +6806,7 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
/* Decrease the use count and possibly free share */
free_share
(
share
);
}
/* Clear the list of open tables */
util_open_tables
.
empty
();
next:
/* Calculate new time to wake up */
int
secs
=
0
;
int
msecs
=
ndb_cache_check_time
;
...
...
@@ -6816,6 +6829,8 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
}
}
if
(
share_list
)
delete
[]
share_list
;
thd
->
cleanup
();
delete
thd
;
delete
ndb
;
...
...
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