-void codegen_threadcritrestart(codegendata *cd, int offset);
-void codegen_threadcritstart(codegendata *cd, int offset);
-void codegen_threadcritstop(codegendata *cd, int offset);
+void codegen_critical_section_new(codegendata *cd);
+void codegen_critical_section_start(codegendata *cd);
+void codegen_critical_section_end(codegendata *cd);
+
+# define CODEGEN_CRITICAL_SECTION_NEW codegen_critical_section_new(cd)
+# define CODEGEN_CRITICAL_SECTION_START codegen_critical_section_start(cd)
+# define CODEGEN_CRITICAL_SECTION_END codegen_critical_section_end(cd)
+#else
+# define CODEGEN_CRITICAL_SECTION_NEW /* no-op */
+# define CODEGEN_CRITICAL_SECTION_START /* no-op */
+# define CODEGEN_CRITICAL_SECTION_END /* no-op */