Does func2 call another script?
In that case you can run the script in the background and use the wait command to wait until the background job is complete.
BTW the use of cat is redundant, to loop through a file you can do something like:
Code:
while read var1 var2
do
func1 $var1 $var2
done < file1