trouble compiling Fiber example code from docs dmd linux v2.067.1
anonymous via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Aug 6 13:37:49 PDT 2015
On Thursday, 6 August 2015 at 20:21:38 UTC, Carl Sturtivant wrote:
> I took the example code from here,
> http://dlang.org/phobos/core_thread.html#.Fiber
> and wrapped the statements at the bottom inside main() and put
> import core.thread and std.stdio at the top, and the compiler
> gave me the following.
>
> /usr/include/dmd/druntime/import/core/thread.d(3894): Error:
> static variable PAGESIZE cannot be read at compile time
> fiberexample.d(8): called from here:
> super.this(&this.run, PAGESIZE * 4LU)
> /usr/include/dmd/druntime/import/core/thread.d(3871): Error:
> static variable PAGESIZE cannot be read at compile time
>
> Help anyone?
This isn't really clear from the example, but you need to put the
bottom part in a function (e.g. main), including the variable
initializations. I.e.:
----
void main()
{
// create instances of each type
Fiber derived = new DerivedFiber();
Fiber composed = new Fiber( &fiberFunc );
// call both fibers once
derived.call();
composed.call();
printf( "Execution returned to calling context.\n" );
composed.call();
// since each fiber has run to completion, each should have
state TERM
assert( derived.state == Fiber.State.TERM );
assert( composed.state == Fiber.State.TERM );
}
----
More information about the Digitalmars-d-learn
mailing list