diff runtime/func.h @ 142:7bbdc034e347

Fix some bugs. Get basic network code working (epoll listener + accept connections). Start porting webserver.
author Mike Pavone <pavone@retrodev.com>
date Sun, 21 Nov 2010 16:33:17 -0500
parents f2cb85c53ced
children b75ec364cecc
line wrap: on
line diff
--- a/runtime/func.h	Sat Nov 20 17:48:22 2010 -0500
+++ b/runtime/func.h	Sun Nov 21 16:33:17 2010 -0500
@@ -287,6 +287,24 @@
 	my_cdata = cdata->lastframe;\
 	RESUME_SELF
 
+#define CallNoLocals(tocall, numparams, resumeto, myname)\
+			cdata->func = RES_  ## resumeto ## _ ## myname;\
+			cdata->num_params = numparams;\
+			if(FUNC_ ## tocall == FUNC_ ## myname) {\
+				PAUSE_SELF\
+				AND_TOTAL\
+			} else if (FUNC_ ## tocall != FUNC_PL_ && FUNC_ ## tocall != FUNC_MN_ && FUNC_ ## tocall != FUNC_TM_ && FUNC_ ## tocall != FUNC_DV_ && FUNC_ ## tocall != FUNC_If) {\
+				PAUSE_SELF\
+			}\
+			goto sf_ ## tocall;\
+r ## resumeto ## _ ## myname:\
+			my_cdata = cdata->lastframe;\
+			if(FUNC_ ## tocall == FUNC_ ## myname) {\
+				RESUME_SELF\
+				AND_RESUME_TOTAL\
+			} else if (FUNC_ ## tocall != FUNC_PL_ && FUNC_ ## tocall != FUNC_MN_ && FUNC_ ## tocall != FUNC_TM_ && FUNC_ ## tocall != FUNC_DV_ && FUNC_ ## tocall != FUNC_If) {\
+				RESUME_SELF\
+			}
 
 #define Call(tocall, numparams, resumeto, myname)\
 			cdata->func = RES_  ## resumeto ## _ ## myname;\