On 4/24/18 10:31 AM, Byron Heads wrote:
On Tuesday, 24 April 2018 at 13:36:48 UTC, Steven Schveighoffer wrote:
This is not the case of executing 100,000 concurrent fibers, but
executing 100,000 *sequential* fibers. It should work just fine.
Correct, in a normal run of my system there maybe 10-20 fibers max
alive. I was using threads only before, but found the system to execute
jobs in a balanced way. But using a few threads to process Fibers keep
in a queue balances out the work evenly. It is also easier to track down
bugs by just using 1 thread to process the fiber pool.
I would love to use dip1000, Allocators, and shared. But none of that
stuff really works beyond trivial examples. (Allocators probably works
fine, but there are forum post about it changing and I dont want to
refactor it twice..)
stdx.allocator (https://github.com/dlang-community/stdx-allocator and
http://code.dlang.org/packages/stdx-allocator) is "stable", you can use
that instead of the one inside phobos. This way, even if phobos
introduces breaking changes, you can depend on a specific version of the
allocators. DIP1000 is very much a work in progress, I'm unsure if/when
it will become usable. Shared likely isn't going to get any better until
the main players start focusing on it. Right now, I think they are more
interested in memory safety.
I will start ignoring win32 when win64 doesn't require dealing with
visual studio installs.
Also I have a feeling a client will ask for it.
Unfortunately I don't think the VS license will ever allow us to avoid
installing VS as well.
My recommendation is just to ignore Win32. I wouldn't trust it at all.
There are serious threading issues there, and the GC is prone to run out
of memory if you aren't careful.
But I can understand if you can't go that route.
Another thing to try is -m32mscoff, which creates 32-bit binaries, but
links against Microsoft's runtime instead of DMD. While this is a stated
problem from you, it may help to determine if it's really the digital
mars library or something more inherent in the way Fibers or the GC is
working.
-Steve