synccall: add separate exit_sem to fix thread release logic bug