private Subscription enqueue(Action0 action, long execTime) {
if (this.innerSubscription.isUnsubscribed()) {
return Subscriptions.unsubscribed();
}
final TimedAction timedAction = new TimedAction(action, Long.valueOf(execTime), this.counter.incrementAndGet());
this.queue.add(timedAction);
if (this.wip.getAndIncrement() != 0) {
return Subscriptions.create(new Action0() {
public void call() {
InnerCurrentThreadScheduler.this.queue.remove(timedAction);
}
});
}
do {
TimedAction polled = (TimedAction) this.queue.poll();
if (polled != null) {
polled.action.call();
}
} while (this.wip.decrementAndGet() > 0);
return Subscriptions.unsubscribed();
}
TrampolineScheduler.java 文件源码
java
阅读 24
收藏 0
点赞 0
评论 0
项目:boohee_v5.6
作者:
评论列表
文章目录