valid uses of shared

Mike Wey mike-wey at example.com
Sat Jun 9 05:31:01 PDT 2012


On 06/09/2012 04:01 AM, mta`chrono wrote:
> Would this be legal?
>
> class A
> {
>       private static shared int counter; // shared across all instances
>
>       this()
>       {
>            auto i = ++counter;
>            pragma(msg, typeof(i)); // prints int
>       }
> }
>

Would it also be legal if the variable wasn't static?

int opApply(int delegate(ref Pixels) dg)
{
     shared(int) progress;

     foreach ( row; taskPool.parallel(iota(extent.y, extent.y + 
extent.height)) )
     {
         int result = dg(Pixels(image, extent.x, row, extent.width, 1));

         if ( result )
              return result;

         if ( image.monitor !is null )
         {
             atomicOp!"+="(progress, 1);
             image.monitor()("ImageView/" ~ image.filename, progress, 
extent.height);
         }
     }
     return 0;
}

-- 
Mike Wey


More information about the Digitalmars-d mailing list