Zitat von Florian Klaempfl <[EMAIL PROTECTED]>: > Mattias Gärtner schrieb: > > I'm writing a unit to simplify parallel methods/procedures. > > > > For example: > > DoParallel(@AMethod,StartIndex,EndIndex,Data); > > > > The AMethod is executed with several threads in parallel. > > > > What should happen when an exception occurs? > > It would be nice if the exception can be transfered to the main thread. > > Is this possible? How? > > See synchronize/checksynchronize implementation.
Sorry, I misused the term 'main thread'. DoParallel starts AMethod with several threads in parallel and waits until all threads finished. DoParallel can be called by any thread (e.g. the main thread of the process *or* any other sub thread). Even the threads of the pool can call again DoParallel. This is only limited by the memory, as each call creates a threadgroup object. The goal is to simplify parallelizing procedures so for the user DoParallel should work like a normal procedure call. That's why it would be nice if the following could work: try ... DoParallel(...); ... except end; The exception can occur in any of the subthreads including the starting thread (which I named 'main thread', because it is the main thread of the group. Maybe I should call it 'group thread' or 'starter thread'). When an exception occurs, the group waits for all other threads of this group to finish and then the exception should happen 'as if the exception occured in the starting thread'. Mattias _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel