Brook+ 1.3 provides a new method to check error on Stream. This method synchronizes streams for all the previous commands -
Stream<float> a(2, dim);
Stream<float> b(2, dim);
a.read(ptr);
a.error(); // Synchronize for data transfer
timer_start();
kernelCall(a, b); //b is an output stream
b.error(); //Check error on output stream to synchronize kernel
timer_stop();