Added methods for creating an interval that execute a Runnable when they
expire. Whoa, composable software. Amazing. We should have done this eight years ago. git-svn-id: https://samskivert.googlecode.com/svn/trunk@2595 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -46,6 +46,34 @@ public abstract class Interval
|
||||
public Interval getInterval ();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an interval that executes the supplied runnable when it expires.
|
||||
*/
|
||||
public static Interval create (final Runnable onExpired)
|
||||
{
|
||||
return new Interval() {
|
||||
public void expired () {
|
||||
onExpired.run();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an interval that executes the supplied runnable on the specified RunQueue when it
|
||||
* expires.
|
||||
*/
|
||||
public static Interval create (RunQueue runQueue, final Runnable onExpired)
|
||||
{
|
||||
// we could probably avoid all the wacky machinations internal to Interval that do the
|
||||
// runbuddy reposting and whatever and just create a non-runqueue interval that posts the
|
||||
// supplied runnable to the runqueue when it expires, but we'll just punt on that for now
|
||||
return new Interval(runQueue) {
|
||||
public void expired () {
|
||||
onExpired.run();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* This may be removed.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user