ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Coro.pm
(Generate patch)

Comparing Coro/Coro.pm (file contents):
Revision 1.30 by root, Sat Aug 11 19:59:19 2001 UTC vs.
Revision 1.31 by root, Sat Aug 11 23:10:56 2001 UTC

39use base Exporter; 39use base Exporter;
40 40
41$VERSION = 0.45; 41$VERSION = 0.45;
42 42
43@EXPORT = qw(async cede schedule terminate current); 43@EXPORT = qw(async cede schedule terminate current);
44@EXPORT_OK = qw($current); 44%EXPORT_TAGS = (
45 prio => [qw(PRIO_MAX PRIO_HIGH PRIO_NORMAL PRIO_LOW PRIO_IDLE PRIO_MIN)],
46);
47@EXPORT_OK = @{$EXPORT_TAGS{prio}};
45 48
46{ 49{
47 my @async; 50 my @async;
48 my $init; 51 my $init;
49 52
228sub cancel { 231sub cancel {
229 push @destroy, $_[0]; 232 push @destroy, $_[0];
230 $manager->ready; 233 $manager->ready;
231} 234}
232 235
236=item $oldprio = $process->prio($newprio)
237
238Sets the priority of the process. Higher priority processes get run before
239lower priority processes. Priorities are smalled signed integer (currently
240-4 .. +3), that you can refer to using PRIO_xxx constants (use the import
241tag :prio to get then):
242
243 PRIO_MAX > PRIO_HIGH > PRIO_NORMAL > PRIO_LOW > PRIO_IDLE > PRIO_MIN
244 3 > 1 > 0 > -1 > -3 > -4
245
246 # set priority to HIGH
247 current->prio(PRIO_HIGH);
248
249The idle coroutine ($Coro::idle) always has a lower priority than any
250existing coroutine.
251
252Changing the priority of the current process will take effect immediately,
253but changing the priority of processes in the ready queue (but not
254running) will only take effect after the next schedule (of that
255process). This is a bug that will be fixed in some future version.
256
257=cut
258
259sub prio {
260 my $old = $_[0]{prio};
261 $_[0]{prio} = $_[1] if @_ > 1;
262 $old;
263}
264
265=item $newprio = $process->nice($change)
266
267Similar to C<prio>, but subtract the given value from the priority (i.e.
268higher values mean lower priority, just as in unix).
269
270=cut
271
272sub nice {
273 $_[0]{prio} -= $_[1];
274}
275
233=back 276=back
234 277
235=cut 278=cut
236 279
2371; 2801;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines