Assuming you generally don't expect errors, why don't you put your
flock into the error handling code? That way, under normal circumstances there is no bottle neck. There necessarily must be a bottle neck somewhere if you want to check 300 error messages against each other.