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
d050c30d
Commit
d050c30d
authored
Aug 05, 2002
by
monty@mashka.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added some mutex locks to make SLAVE START and SLAVE STOP thread safe.
parent
4f56ed82
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
3 deletions
+15
-3
Docs/manual.texi
Docs/manual.texi
+2
-0
sql/gen_lex_hash.cc
sql/gen_lex_hash.cc
+9
-3
sql/slave.cc
sql/slave.cc
+4
-0
No files found.
Docs/manual.texi
View file @
d050c30d
...
@@ -46928,6 +46928,8 @@ not yet 100% confident in this code.
...
@@ -46928,6 +46928,8 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.52
@appendixsubsec Changes in release 3.23.52
@itemize @bullet
@itemize @bullet
@item
@item
Fixed thread bug in @code{SLAVE START} and @code{SLAVE STOP}.
@item
Added name of 'administrator command' logs.
Added name of 'administrator command' logs.
@item
@item
Fixed bug with creating an auto-increment value on second part of a
Fixed bug with creating an auto-increment value on second part of a
sql/gen_lex_hash.cc
View file @
d050c30d
...
@@ -216,7 +216,7 @@ you have to change 'main' to print out the new function\n");
...
@@ -216,7 +216,7 @@ you have to change 'main' to print out the new function\n");
return
(
1
);
return
(
1
);
}
}
if
(
opt_verbose
)
if
(
opt_verbose
>
1
)
fprintf
(
stderr
,
"Info: Possible add values: %d
\n
"
,
found
-
type_count
);
fprintf
(
stderr
,
"Info: Possible add values: %d
\n
"
,
found
-
type_count
);
for
(
prime
=
primes
;
(
function_mod
=*
prime
)
;
prime
++
)
for
(
prime
=
primes
;
(
function_mod
=*
prime
)
;
prime
++
)
...
@@ -385,7 +385,7 @@ static int get_options(int argc, char **argv)
...
@@ -385,7 +385,7 @@ static int get_options(int argc, char **argv)
opt_search
=
1
;
opt_search
=
1
;
break
;
break
;
case
'v'
:
case
'v'
:
opt_verbose
=
1
;
opt_verbose
++
;
break
;
break
;
case
'V'
:
usage
(
1
);
exit
(
0
);
case
'V'
:
usage
(
1
);
exit
(
0
);
case
'I'
:
case
'I'
:
...
@@ -481,7 +481,7 @@ int main(int argc,char **argv)
...
@@ -481,7 +481,7 @@ int main(int argc,char **argv)
int
error
;
int
error
;
MY_INIT
(
argv
[
0
]);
MY_INIT
(
argv
[
0
]);
start_value
=
7740512L
;
best_t1
=
7953583L
;
best_t2
=
6918639L
;
best_type
=
1
;
/* mode=544
9 add=1 type: 0 */
start_value
=
2744811L
;
best_t1
=
5135075L
;
best_t2
=
1719450L
;
best_type
=
0
;
/* mode=499
9 add=1 type: 0 */
if
(
get_options
(
argc
,(
char
**
)
argv
))
if
(
get_options
(
argc
,(
char
**
)
argv
))
exit
(
1
);
exit
(
1
);
...
@@ -502,6 +502,7 @@ int main(int argc,char **argv)
...
@@ -502,6 +502,7 @@ int main(int argc,char **argv)
start_value
,
best_t1
,
best_t2
,
best_type
,
best_mod
,
best_add
,
start_value
,
best_t1
,
best_t2
,
best_type
,
best_mod
,
best_add
,
best_functype
);
best_functype
);
best_start_value
=
start_value
;
for
(
uint
i
=
1
;
i
<=
opt_count
;
i
++
)
for
(
uint
i
=
1
;
i
<=
opt_count
;
i
++
)
{
{
if
(
i
%
10
==
0
)
if
(
i
%
10
==
0
)
...
@@ -524,6 +525,11 @@ int main(int argc,char **argv)
...
@@ -524,6 +525,11 @@ int main(int argc,char **argv)
best_start_value
,
best_t1
,
best_t2
,
best_type
,
best_mod
,
best_add
,
best_start_value
,
best_t1
,
best_t2
,
best_type
,
best_mod
,
best_add
,
best_functype
);
best_functype
);
}
}
if
(
opt_verbose
&&
(
i
%
20000
)
==
0
)
printf
(
"
\n
start_value=%ldL; best_t1=%ldL; best_t2=%ldL; best_type=%d;
/* mode=%d add=%d type: %d */
\n
"
,
best_start_value
,
best_t1
,
best_t2
,
best_type
,
best_mod
,
best_add
,
best_functype
);
}
}
}
}
...
...
sql/slave.cc
View file @
d050c30d
...
@@ -1301,7 +1301,9 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused)))
...
@@ -1301,7 +1301,9 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused)))
}
}
thd
->
thread_stack
=
(
char
*
)
&
thd
;
// remember where our stack is
thd
->
thread_stack
=
(
char
*
)
&
thd
;
// remember where our stack is
thd
->
temporary_tables
=
save_temporary_tables
;
// restore temp tables
thd
->
temporary_tables
=
save_temporary_tables
;
// restore temp tables
(
void
)
pthread_mutex_lock
(
&
LOCK_thread_count
);
threads
.
append
(
thd
);
threads
.
append
(
thd
);
(
void
)
pthread_mutex_unlock
(
&
LOCK_thread_count
);
glob_mi
.
pending
=
0
;
//this should always be set to 0 when the slave thread
glob_mi
.
pending
=
0
;
//this should always be set to 0 when the slave thread
// is started
// is started
...
@@ -1501,7 +1503,9 @@ position %s",
...
@@ -1501,7 +1503,9 @@ position %s",
pthread_mutex_unlock
(
&
LOCK_slave
);
pthread_mutex_unlock
(
&
LOCK_slave
);
net_end
(
&
thd
->
net
);
// destructor will not free it, because we are weird
net_end
(
&
thd
->
net
);
// destructor will not free it, because we are weird
slave_thd
=
0
;
slave_thd
=
0
;
(
void
)
pthread_mutex_lock
(
&
LOCK_thread_count
);
delete
thd
;
delete
thd
;
(
void
)
pthread_mutex_unlock
(
&
LOCK_thread_count
);
my_thread_end
();
my_thread_end
();
#ifndef DBUG_OFF
#ifndef DBUG_OFF
if
(
abort_slave_event_count
&&
!
events_till_abort
)
if
(
abort_slave_event_count
&&
!
events_till_abort
)
...
...
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