use critical section to protect shell output in vsfshell, not tested