annotate sched/timed_action.m @ 6:0ce3c2070089
Removed duplicate code and fixed doc in timed_action.
author |
samer |
date |
Mon, 14 Jan 2013 14:33:37 +0000 |
parents |
7357e1dc2ad6 |
children |
beb8a3f4a345 |
rev |
line source |
samer@2
|
1 % timed_action - return action function that checks the time
|
samer@2
|
2 %
|
samer@2
|
3 % timed_action ::
|
samer@2
|
4 % (A1, A2, ... => B1, B2, ...) ~'some action',
|
samer@6
|
5 % options {
|
samer@6
|
6 % print :: bool/false ~'if true, then print timing error on action';
|
samer@6
|
7 % errorfn :: (time => real) ~'action to compute timing error from scheduled time'
|
samer@6
|
8 % }
|
samer@2
|
9 % -> timed_action({A1,A2,...},{B1,B2,...}).
|
samer@2
|
10 function a0=timed_action(x,varargin)
|
samer@2
|
11 opts=prefs('print',0,'errorfn',@(t)nows-t,varargin{:});
|
samer@2
|
12 if opts.print, a0=@aa_print; else a0=@aa; end
|
samer@2
|
13 errfn=opts.errorfn;
|
samer@0
|
14
|
samer@2
|
15 function varargout=aa_print(t0,varargin),
|
samer@2
|
16 varargout{1}=errfn(t0);
|
samer@2
|
17 [varargout{2:nargout}]=x(varargin{:});
|
samer@2
|
18 fprintf('timed_action: error=%g\n',varargout{1});
|
samer@2
|
19 end
|
samer@2
|
20 function varargout=aa(t0,varargin),
|
samer@2
|
21 varargout{1}=errfn(t0);
|
samer@2
|
22 [varargout{2:nargout}]=x(varargin{:});
|
samer@0
|
23 end
|
samer@0
|
24 end
|