pprFCall: avoid/reduce name-capture problem (as was, safe calling
the C function id() would break.)
]
where
(pp_saves, pp_restores) = ppr_vol_regs vol_regs
]
where
(pp_saves, pp_restores) = ppr_vol_regs vol_regs
+ ppr_uniq_token = text "tok_" <> ppr uniq
(pp_save_context, pp_restore_context)
(pp_save_context, pp_restore_context)
- | playSafe safety = ( text "{ I_ id; SUSPEND_THREAD(id);"
- , text "RESUME_THREAD(id);}"
+ | playSafe safety = ( text "{ I_" <+> ppr_uniq_token <>
+ text "; SUSPEND_THREAD" <> parens ppr_uniq_token <> semi
+ , text "RESUME_THREAD" <> parens ppr_uniq_token <> text ";}"
)
| otherwise = ( pp_basic_saves $$ pp_saves,
pp_basic_restores $$ pp_restores)
)
| otherwise = ( pp_basic_saves $$ pp_saves,
pp_basic_restores $$ pp_restores)