This file is indexed.

/usr/share/SuperCollider/HelpSource/Classes/SystemClock.schelp is in supercollider-common 1:3.8.0~repack-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 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
CLASS::SystemClock
categories::Scheduling>Clocks
summary:: Clock running on separate accurately timed thread
related::Classes/AppClock, Classes/TempoClock

DESCRIPTION::

SystemClock is more accurate than AppClock, but cannot call GUI primitives.

See link::Classes/Clock:: for general explanation of how clocks operate.

CLASSMETHODS::

private::prClear

method::sched
The float you return specifies the delta to resched the function for. Returning nil will stop the task from being rescheduled.
code::
(
SystemClock.sched(0.0,{ arg time;
	time.postln;
	rrand(0.1,0.9);
});
)
::
code::
(
SystemClock.sched(2.0,{
	"2.0 seconds later".postln;
	nil;
});
)
::

method::clear
Clear the SystemClock's scheduler to stop it.
code::
SystemClock.clear;
::

method::schedAbs
code::
(
SystemClock.schedAbs( (thisThread.seconds + 4.0).round(1.0),{ arg time;
	("the time is exactly " ++ time.asString
		++ " seconds since starting SuperCollider").postln;
});
)
::

method::play
Calls to the GUI may not be made directly from actions triggered by SystemClock or incoming socket messages (OSCFunc).

To get around this, use code::{ }.defer ::. This will execute the function using the AppClock and is equivalent to code::AppClock.sched(0, function)::

code::
(
var w, r;
w = Window.new("trem", Rect(512, 256, 360, 130));
w.front;
r = Routine({ arg time;
	60.do({ arg i;
		0.05.yield;
		{
			w.bounds = w.bounds.moveBy(10.rand2, 10.rand2);
			w.alpha = cos(i*0.1pi)*0.5+0.5;
		}.defer;
	});
	1.yield;
	w.close;
});
SystemClock.play(r);
)
::
This example is only to show how to make calls to Cocoa/GUI when scheduling with the SystemClock. If you only wish to control the GUI, use AppClock.