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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
c0638190
Commit
c0638190
authored
Dec 23, 2005
by
serg@serg.mylan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
locking issues,
test for LONGLONG_MIN in decimal.c
parent
b867ef6d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
20 deletions
+19
-20
myisam/mi_create.c
myisam/mi_create.c
+3
-2
mysys/thr_alarm.c
mysys/thr_alarm.c
+9
-15
server-tools/instance-manager/instance.cc
server-tools/instance-manager/instance.cc
+3
-0
strings/decimal.c
strings/decimal.c
+4
-3
No files found.
myisam/mi_create.c
View file @
c0638190
...
...
@@ -72,7 +72,6 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
}
LINT_INIT
(
dfile
);
LINT_INIT
(
file
);
pthread_mutex_lock
(
&
THR_LOCK_myisam
);
errpos
=
0
;
options
=
0
;
bzero
((
byte
*
)
&
share
,
sizeof
(
share
));
...
...
@@ -135,7 +134,7 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
pack_reclength
++
;
min_pack_length
++
;
/* We must test for 257 as length includes pack-length */
if
(
test
(
rec
->
length
>=
257
))
if
(
test
(
rec
->
length
>=
257
))
{
long_varchar_count
++
;
pack_reclength
+=
2
;
/* May be packed on 3 bytes */
...
...
@@ -542,6 +541,8 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
if
(
!
(
flags
&
HA_DONT_TOUCH_DATA
))
share
.
state
.
create_time
=
(
long
)
time
((
time_t
*
)
0
);
pthread_mutex_lock
(
&
THR_LOCK_myisam
);
if
(
ci
->
index_file_name
)
{
fn_format
(
filename
,
ci
->
index_file_name
,
""
,
MI_NAME_IEXT
,
4
);
...
...
mysys/thr_alarm.c
View file @
c0638190
...
...
@@ -401,7 +401,7 @@ void end_thr_alarm(my_bool free_structures)
{
DBUG_ENTER
(
"end_thr_alarm"
);
if
(
alarm_aborted
!=
1
)
/* If memory not freed */
{
{
pthread_mutex_lock
(
&
LOCK_alarm
);
DBUG_PRINT
(
"info"
,(
"Resheduling %d waiting alarms"
,
alarm_queue
.
elements
));
alarm_aborted
=
-
1
;
/* mark aborted */
...
...
@@ -415,13 +415,10 @@ void end_thr_alarm(my_bool free_structures)
if
(
free_structures
)
{
struct
timespec
abstime
;
/*
The following test is just for safety, the caller should not
depend on this
*/
DBUG_ASSERT
(
!
alarm_queue
.
elements
);
/* Wait until alarm thread dies */
/* Wait until alarm thread dies */
set_timespec
(
abstime
,
10
);
/* Wait up to 10 seconds */
while
(
alarm_thread_running
)
{
...
...
@@ -429,16 +426,13 @@ void end_thr_alarm(my_bool free_structures)
if
(
error
==
ETIME
||
error
==
ETIMEDOUT
)
break
;
/* Don't wait forever */
}
if
(
!
alarm_queue
.
elements
)
delete_queue
(
&
alarm_queue
);
alarm_aborted
=
1
;
pthread_mutex_unlock
(
&
LOCK_alarm
);
if
(
!
alarm_thread_running
)
/* Safety */
{
delete_queue
(
&
alarm_queue
);
alarm_aborted
=
1
;
pthread_mutex_unlock
(
&
LOCK_alarm
);
if
(
!
alarm_thread_running
)
/* Safety */
{
pthread_mutex_destroy
(
&
LOCK_alarm
);
pthread_cond_destroy
(
&
COND_alarm
);
}
pthread_mutex_destroy
(
&
LOCK_alarm
);
pthread_cond_destroy
(
&
COND_alarm
);
}
}
else
...
...
server-tools/instance-manager/instance.cc
View file @
c0638190
...
...
@@ -255,7 +255,10 @@ static void start_and_monitor_instance(Instance_options *old_instance_options,
log_info
(
"starting instance %s"
,
instance_name_buff
);
if
(
start_process
(
old_instance_options
,
&
process_info
))
{
instance_map
->
unlock
();
return
;
/* error is logged */
}
/* allow users to delete instances */
instance_map
->
unlock
();
...
...
strings/decimal.c
View file @
c0638190
...
...
@@ -1069,9 +1069,9 @@ int decimal2longlong(decimal_t *from, longlong *to)
}
}
/* boundary case: 9223372036854775808 */
if
(
unlikely
(
from
->
sign
==
0
&&
x
<
0
&&
-
x
<
0
))
if
(
unlikely
(
from
->
sign
==
0
&&
x
==
LONGLONG_MIN
))
{
*
to
=
-
1
-
x
;
*
to
=
LONGLONG_MAX
;
return
E_DEC_OVERFLOW
;
}
...
...
@@ -2675,7 +2675,8 @@ void test_pr(const char *s1, int prec, int dec, char filler, const char *orig,
int
slen
=
sizeof
(
s2
);
int
res
;
sprintf
(
s
,
"'%s', %d, %d, '%c'"
,
s1
,
prec
,
dec
,
filler
);
sprintf
(
s
,
filler
?
"'%s', %d, %d, '%c'"
:
"'%s', %d, %d, '
\\
0'"
,
s1
,
prec
,
dec
,
filler
);
end
=
strend
(
s1
);
string2decimal
(
s1
,
&
a
,
&
end
);
res
=
decimal2string
(
&
a
,
s2
,
&
slen
,
prec
,
dec
,
filler
);
...
...
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