[std.concurrency] prioritySend is 1000 times slower than send?

Sean Kelly sean at invisibleduck.org
Thu Sep 30 08:04:47 PDT 2010


osa Wrote:

> I started using std.concurrency in some projects and overall it feels 
> like a solid (albeit minimalistic) design. However, current 
> implementation has some issues. For example, I've noticed that using 
> prioritySend slows everything considerably.

Thanks for this.  I can tell you that prioritySend performs an extra allocation to account for a design requirement (if a priority message isn't received it's thrown as PriorityMessage!(T), and this exception is generated when the send occurs, since static type info isn't available at the receive side when it's needed for this).  I had originally thought that the difference was just more garbage collections, but calling GC.disable only increases the number of priority messages sent by about 1000.  I'll have to look at the code to see if I can figure out what's going on.


More information about the Digitalmars-d mailing list