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
95da4585
Commit
95da4585
authored
Feb 09, 2005
by
joreland@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
recommit fix as 4.1->5.0 is currently impossible and fix is _really_ useful
parent
74d10e48
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
20 deletions
+22
-20
ndb/src/kernel/vm/FastScheduler.cpp
ndb/src/kernel/vm/FastScheduler.cpp
+22
-20
No files found.
ndb/src/kernel/vm/FastScheduler.cpp
View file @
95da4585
...
...
@@ -85,7 +85,7 @@ FastScheduler::activateSendPacked()
void
FastScheduler
::
doJob
()
{
Uint32
init_
loopCount
=
0
;
Uint32
loopCount
=
0
;
Uint32
TminLoops
=
getBOccupancy
()
+
EXTRA_SIGNALS_PER_DO_JOB
;
Uint32
TloopMax
=
(
Uint32
)
globalData
.
loopMax
;
if
(
TminLoops
<
TloopMax
)
{
...
...
@@ -94,10 +94,9 @@ FastScheduler::doJob()
if
(
TloopMax
<
MIN_NUMBER_OF_SIG_PER_DO_JOB
)
{
TloopMax
=
MIN_NUMBER_OF_SIG_PER_DO_JOB
;
}
//if
do
{
Uint32
loopCount
=
init_loopCount
;
register
Uint32
tHighPrio
=
globalData
.
highestAvailablePrio
;
register
Signal
*
signal
=
getVMSignals
();
register
Uint32
tHighPrio
=
globalData
.
highestAvailablePrio
;
do
{
while
((
tHighPrio
<
LEVEL_IDLE
)
&&
(
loopCount
<
TloopMax
))
{
// signal->garbage_register();
// To ensure we find bugs quickly
...
...
@@ -155,24 +154,27 @@ FastScheduler::doJob()
}
//if
loopCount
++
;
}
//while
if
(
globalData
.
sendPackedActivated
==
1
)
{
Uint32
t1
=
theDoJobTotalCounter
;
Uint32
t2
=
theDoJobCallCounter
;
t1
+=
(
loopCount
-
init_loopCount
);
t2
++
;
theDoJobTotalCounter
=
t1
;
theDoJobCallCounter
=
t2
;
if
(
t2
==
8192
)
{
reportDoJobStatistics
(
t1
>>
13
);
sendPacked
();
tHighPrio
=
globalData
.
highestAvailablePrio
;
if
(
getBOccupancy
()
>
MAX_OCCUPANCY
)
{
if
(
loopCount
!=
TloopMax
)
abort
();
assert
(
loopCount
==
TloopMax
);
TloopMax
+=
512
;
}
}
while
((
getBOccupancy
()
>
MAX_OCCUPANCY
)
||
((
loopCount
<
TloopMax
)
&&
(
tHighPrio
<
LEVEL_IDLE
)));
theDoJobCallCounter
++
;
theDoJobTotalCounter
+=
loopCount
;
if
(
theDoJobCallCounter
==
8192
)
{
reportDoJobStatistics
(
theDoJobTotalCounter
>>
13
);
theDoJobCallCounter
=
0
;
theDoJobTotalCounter
=
0
;
}
//if
}
//if
init_loopCount
=
loopCount
;
sendPacked
();
}
while
((
getBOccupancy
()
>
MAX_OCCUPANCY
)
||
((
init_loopCount
<
TloopMax
)
&&
(
globalData
.
highestAvailablePrio
<
LEVEL_IDLE
)));
}
//FastScheduler::doJob()
void
FastScheduler
::
sendPacked
()
...
...
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