On Tue, 11 Mar 2014 20:23:53 GMT, Sönke Ludwig wrote:
On Tue, 11 Mar 2014 20:03:22 GMT, Craig Dillabaugh wrote:
(...)
Since, I figure someone may ask what classifyTask does here it is:
clip
Is it possible that something I am doing in my classifyTask() function is blocking the server response?
The
std.process.wait
is the evil call here. There are two possibilities to solve this:
- use
runWorkerTask
+ proper synchronization instead ofrunTask
- use these gists: PipedProcess, StdFileStream
So I've attempted to try runWorkerTask, I have the following code to run my classifyTask:
runWorkerTask( &classifyTask, bands.idup, "cluster", "isoclus.out.json", image_dir, image); //source/app.d(361)
But this fails with
Error: static assert "Argument type ulong[] is not safe to pass between threads."
source/app.d(361): instantiated from here: runWorkerTask!(void, ulong[], string, string, string, ImageDB)
Is there any way to pass an array to a function run in runWorkerTask?