aboutsummaryrefslogtreecommitdiff
path: root/threadlib/doc/sleep-help.pd
blob: b9c172da6323bcec3bf7d86e3192f7b0cfe4abbb (plain)
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
80
81
82
83
84
85
86
87
88
#N canvas 280 37 465 589 10;
#X obj 29 23 cnv 15 404 54 empty empty empty 22 25 0 18 -1 -66577 0
;
#X obj 31 25 cnv 15 400 50 empty empty threadlib 22 25 0 18 -228992
-66577 0;
#X text 322 34 help file of;
#X text 27 518 =%)!(%= threadlib \, by Georg Holzmann <grh@mur.at>
\, 2005;
#X text 70 552 htttp://grh.mur.at/software/threadlib.html;
#X obj 261 452 threadedsf;
#X text 83 452 see also:;
#X text 55 535 heavily based on pd_devel code by Tim Blechmann;
#N canvas 421 0 803 576 detach_join_examples 0;
#X msg 117 105 5;
#X obj 117 133 sleep;
#X text 37 39 1) this will block the system for 5 sec:;
#X obj 117 161 print EX1_DONE;
#X text 554 112 (instead of sleep you could;
#X msg 499 73 5;
#X obj 499 123 sleep;
#X text 396 39 2) to avoid this you can run it in a helper thread:
;
#X obj 499 97 detach;
#X obj 499 184 print EX2_DONE;
#X text 560 127 of course use an other cpu;
#X text 559 143 intensive object which could;
#X text 561 158 block the main thread);
#X text 34 252 3) be aware that each object connected to;
#X text 55 267 detach will run in the helper thread:;
#X msg 127 305 5;
#X obj 127 366 sleep;
#X obj 127 330 detach;
#X obj 170 397 print EX3_DONE_1;
#X msg 127 396 5;
#X obj 127 433 sleep;
#X obj 127 514 print EX3_DONE_2;
#X text 179 436 <- also in helper thread;
#X text 164 457 (and anything else connected;
#X text 171 472 to objects which are connected;
#X text 172 487 to detach !);
#X text 392 251 4) to synchronize these objects with pd main thread
;
#X text 413 268 again you have to use the join object:;
#X text 58 56 (so you will get e.g. an 5 sec;
#X text 61 71 audio drop out !);
#X msg 503 303 5;
#X obj 503 364 sleep;
#X obj 503 328 detach;
#X msg 503 394 5;
#X obj 546 395 print EX4_DONE_1;
#X text 579 368 <- in helper thread;
#X obj 503 431 join;
#X obj 503 463 sleep;
#X obj 503 518 print EX4_DONE_2;
#X text 551 464 <- in main thread again;
#X text 551 481 (and will so block the system);
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 5 0 8 0;
#X connect 6 0 9 0;
#X connect 8 0 6 0;
#X connect 15 0 17 0;
#X connect 16 0 18 0;
#X connect 16 0 19 0;
#X connect 17 0 16 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 30 0 32 0;
#X connect 31 0 33 0;
#X connect 31 0 34 0;
#X connect 32 0 31 0;
#X connect 33 0 36 0;
#X connect 36 0 37 0;
#X connect 37 0 38 0;
#X restore 135 372 pd detach_join_examples;
#X obj 163 452 detach;
#X text 319 50 ::: sleep :::;
#X text 176 109 ::: SLEEP :::;
#X text 31 149 Sleep simply uses the c-function sleep() and blocks
the system for a specific time.;
#X obj 122 256 sleep;
#X msg 122 226 5;
#X text 159 227 <- sleep time in seconds !;
#X obj 122 287 print SLEEP_OVER;
#X text 154 353 see more examples:;
#X obj 220 452 join;
#X connect 13 0 16 0;
#X connect 14 0 13 0;