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.16 by root, Wed Jul 25 04:26:55 2001 UTC vs.
Revision 1.18 by root, Thu Jul 26 03:46:15 2001 UTC

52 coro_context cctx; 52 coro_context cctx;
53 53
54 void *sptr; 54 void *sptr;
55 long ssize; /* positive == mmap, otherwise malloc */ 55 long ssize; /* positive == mmap, otherwise malloc */
56} coro_stack; 56} coro_stack;
57
58static coro_stack main_stack = { 1, 0, 0 };
59 57
60struct coro { 58struct coro {
61 /* the optional C context */ 59 /* the optional C context */
62 coro_stack *stack; 60 coro_stack *stack;
63 void *cursp; 61 void *cursp;
553 stack->usecnt = 1; 551 stack->usecnt = 1;
554 stack->gencnt = ctx->gencnt = 0; 552 stack->gencnt = ctx->gencnt = 0;
555 if (alloc) 553 if (alloc)
556 { 554 {
557#ifdef HAVE_MMAP 555#ifdef HAVE_MMAP
558 stack->ssize = 128 * 1024 * sizeof (long); /* mmap should do allocate-on-write */ 556 stack->ssize = 128 * 1024 * sizeof (long); /* mmap should do allocate-on-write for us */
559 stack->sptr = mmap (0, stack->ssize, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, 0, 0); 557 stack->sptr = mmap (0, stack->ssize, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, 0, 0);
560 if (stack->sptr == (void *)-1) 558 if (stack->sptr == (void *)-1)
561#endif 559#endif
562 { 560 {
563 /*FIXME*//*D*//* reasonable stack size! */ 561 /*FIXME*//*D*//* reasonable stack size! */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines