is this a blocking call ? if it is we should renamed "spawn_xx"