Fixed a race condition in the dataflow scheduler. If one of the dataflow threads came across an error, it would cause DFLOWscheduler to return.  This triggered a cleanup of various dataflow structures.  However, other dataflow threads were still using those structures and could then cause a crash. The problem is solved by signalling all threads that they should terminate, and then joining those threads before cleanup.
Fixed a race condition in the dataflow scheduler.
If one of the dataflow threads came across an error, it would cause
DFLOWscheduler to return.  This triggered a cleanup of various
dataflow structures.  However, other dataflow threads were still using
those structures and could then cause a crash.
The problem is solved by signalling all threads that they should
terminate, and then joining those threads before cleanup.

zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb