So someting like this wouldn't work?

Code:
function calculate(VECTOR* a_vector)
{
wait(1);
vec_set(a_vector,vector(100,200,300)); 
}

function main()
{
VECTOR* the_endresult;	
calculate(the_endresult);
wait_for_my(calculate); //wait(1);
if (the_endresult.x == 100 && the_endresult.y == 200 && the_endresult.z == 300)
{printf("Works");}
}