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

Comparing Coro/Coro/State.xs (file contents):
Revision 1.217 by root, Wed Nov 14 11:32:56 2007 UTC vs.
Revision 1.218 by root, Mon Dec 3 00:41:45 2007 UTC

1330{ 1330{
1331 av_push (coro_ready [SvSTATE (coro_sv)->prio - PRIO_MIN], coro_sv); 1331 av_push (coro_ready [SvSTATE (coro_sv)->prio - PRIO_MIN], coro_sv);
1332} 1332}
1333 1333
1334static SV * 1334static SV *
1335coro_deq (pTHX_ int min_prio) 1335coro_deq (pTHX)
1336{ 1336{
1337 int prio = PRIO_MAX - PRIO_MIN; 1337 int prio;
1338 1338
1339 min_prio -= PRIO_MIN;
1340 if (min_prio < 0)
1341 min_prio = 0;
1342
1343 for (prio = PRIO_MAX - PRIO_MIN + 1; --prio >= min_prio; ) 1339 for (prio = PRIO_MAX - PRIO_MIN + 1; --prio >= 0; )
1344 if (AvFILLp (coro_ready [prio]) >= 0) 1340 if (AvFILLp (coro_ready [prio]) >= 0)
1345 return av_shift (coro_ready [prio]); 1341 return av_shift (coro_ready [prio]);
1346 1342
1347 return 0; 1343 return 0;
1348} 1344}
1384 SV *prev_sv, *next_sv; 1380 SV *prev_sv, *next_sv;
1385 1381
1386 for (;;) 1382 for (;;)
1387 { 1383 {
1388 LOCK; 1384 LOCK;
1389 next_sv = coro_deq (aTHX_ PRIO_MIN); 1385 next_sv = coro_deq (aTHX);
1390 1386
1391 /* nothing to schedule: call the idle handler */ 1387 /* nothing to schedule: call the idle handler */
1392 if (expect_false (!next_sv)) 1388 if (expect_false (!next_sv))
1393 { 1389 {
1394 dSP; 1390 dSP;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines