litesoft
@ 942
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.render; import org.litesoft.commonfoundation.base.*; import org.litesoft.core.delayed.*; public class TicklerForRPM implements RenderProcessManager.Listener, TimedRunnable { private final MillisecTimeSource mMillisecTimeSource; private final TimedRunner mTimedRunner; public TicklerForRPM( MillisecTimeSource pMillisecTimeSource, TimedRunner pTimedRunner ) { mMillisecTimeSource = MillisecTimeSource.deNull( pMillisecTimeSource ); mTimedRunner = pTimedRunner; } public TicklerForRPM( TimedRunner pTimedRunner ) { this( null, pTimedRunner ); } public Again runOnce() { if ( !mProcessing ) { Long zNextTime = process(); if ( zNextTime != null ) { return new RunAgainOnOrAfter( zNextTime ); } } return null; } public void processManagerNowHasProcesses() { if ( !mProcessing ) { mTimedRunner.runIn( this, 1 ); // Defer queue processing until current thread is complete // Use to execute immediately - but that caused certain Callbacks to be added AFTER the process had completed! //Long zNextTime = process(); //if ( zNextTime != null ) //{ // mTimedRunner.runOnOrAfter( this, zNextTime ); //} } } private boolean mProcessing = false; private Long process() { mProcessing = true; long zEnd, zStarted = mMillisecTimeSource.now(); RenderProcessManager zRPM = RenderProcessManager.INSTANCE; do { for ( int i = 0; i < 100; i++ ) { RenderHelperProcess zProcess = zRPM.first(); if ( zProcess == null ) { mProcessing = false; return zRPM.whenIsNextDeferredProcess(); } zProcess.process(); } zEnd = mMillisecTimeSource.now(); } while ( (zEnd - zStarted) < 5000 ); // 5 Secs Max at a time! mProcessing = false; return (zEnd + 50); // 50 millisecs } } |
Commits for litesoft/trunk/Java/core/Anywhere/src/org/litesoft/render/TicklerForRPM.java
Revision | Author | Commited | Message |
---|---|---|---|
942 Diff | GeorgeS | Mon 02 Jun, 2014 23:41:46 +0000 | Extracting commonfoundation |
858 Diff | GeorgeS | Sun 04 Nov, 2012 18:40:40 +0000 | |
851 Diff | GeorgeS | Mon 08 Oct, 2012 00:05:32 +0000 | Breaking the code as Temporal changes are implemented... |
819 Diff | GeorgeS | Sat 18 Aug, 2012 18:09:40 +0000 | |
151 Diff | GeorgeS | Thu 17 Mar, 2011 04:16:22 +0000 | |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
2 | GeorgeS | Sun 07 Feb, 2010 12:50:58 +0000 |