litesoft
Diff Revisions
851
vs
858
for /trunk/Java/core/Anywhere/src/org/litesoft/core/delayed/TimedRunner.java
|
@@ -2,16 +2,18 @@ |
2 |
2 |
|
package org.litesoft.core.delayed; |
3 |
3 |
|
|
4 |
4 |
|
import org.litesoft.core.delayed.nonpublic.*; |
|
5 |
+ |
import org.litesoft.core.simpletypes.temporal.*; |
5 |
6 |
|
import org.litesoft.core.typeutils.*; |
6 |
|
- |
import org.litesoft.core.typeutils.gregorian.*; |
7 |
7 |
|
import org.litesoft.core.util.*; |
8 |
8 |
|
|
9 |
9 |
|
public class TimedRunner |
10 |
10 |
|
{ |
11 |
|
- |
private MyTimedRunnable mMyTimedRunnable = null; |
|
11 |
+ |
private final MillisecTimeSource mMillisecTimeSource; |
|
12 |
+ |
private final MyTimedRunnable mMyTimedRunnable; |
12 |
13 |
|
|
13 |
14 |
|
public TimedRunner( DelayedTimedRunnableRunner pRunner, UnexpectedExceptionHandler pUnexpectedExceptionHandler ) |
14 |
15 |
|
{ |
|
16 |
+ |
mMillisecTimeSource = pRunner.getMillisecTimeSource(); |
15 |
17 |
|
mMyTimedRunnable = new MyTimedRunnable( pRunner, pUnexpectedExceptionHandler ).initialize(); |
16 |
18 |
|
} |
17 |
19 |
|
|
|
@@ -38,7 +40,7 @@ |
38 |
40 |
|
*/ |
39 |
41 |
|
public Long runIn( TimedRunnable pTimedRunnable, long pDelayInMilliSecs ) |
40 |
42 |
|
{ |
41 |
|
- |
return runOnOrAfter( pTimedRunnable, getNow() + pDelayInMilliSecs ); |
|
43 |
+ |
return runOnOrAfter( pTimedRunnable, mMillisecTimeSource.now() + pDelayInMilliSecs ); |
42 |
44 |
|
} |
43 |
45 |
|
|
44 |
46 |
|
/** |
|
@@ -58,11 +60,6 @@ |
58 |
60 |
|
return null; |
59 |
61 |
|
} |
60 |
62 |
|
|
61 |
|
- |
private static long getNow() |
62 |
|
- |
{ |
63 |
|
- |
return Dates.now().getTime(); |
64 |
|
- |
} |
65 |
|
- |
|
66 |
63 |
|
private static class MyTimedRunnable implements TimedRunnable |
67 |
64 |
|
{ |
68 |
65 |
|
private final DelayedTimedRunnableRunner mRunner; |
|
@@ -93,7 +90,7 @@ |
93 |
90 |
|
return null; |
94 |
91 |
|
} |
95 |
92 |
|
long zRunWhen = mHead.getRunWhen(); |
96 |
|
- |
if ( getNow() < zRunWhen ) |
|
93 |
+ |
if ( mRunner.getMillisecTimeSource().now() < zRunWhen ) |
97 |
94 |
|
{ |
98 |
95 |
|
return new RunAgainOnOrAfter( zRunWhen ); |
99 |
96 |
|
} |
|
@@ -113,7 +110,7 @@ |
113 |
110 |
|
{ |
114 |
111 |
|
if ( zAgain != null ) |
115 |
112 |
|
{ |
116 |
|
- |
mHead = DoubleLinkedListTimedRunnableNode.addTo( mHead, zAgain.getOnOrAfter(), mRunning ); |
|
113 |
+ |
mHead = DoubleLinkedListTimedRunnableNode.addTo( mHead, zAgain.getOnOrAfter( mRunner.getMillisecTimeSource() ), mRunning ); |
117 |
114 |
|
} |
118 |
115 |
|
mRunning = null; |
119 |
116 |
|
} |