diff options
author | root <root> | 2008-11-08 04:52:01 +0000 |
---|---|---|
committer | root <root> | 2008-11-08 04:52:01 +0000 |
commit | ce5dfff9ddefbf677d0362d47865c271548e69b3 (patch) | |
tree | 50bce1ded4bb461d78029141d45a159f24345b53 /coro.h | |
parent | 930f681be412f20ef67d9aa0d40ae44cbf682814 (diff) |
*** empty log message ***
Diffstat (limited to 'coro.h')
-rw-r--r-- | coro.h | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -234,9 +234,11 @@ struct coro_context { }; # if _XOPEN_UNIX > 0 -# define coro_transfer(p,n) do { if (!_setjmp ((p)->env)) _longjmp ((n)->env, 1); } while (0) +# define coro_transfer(p,n) do { if (! _setjmp ((p)->env )) _longjmp ((n)->env, 1); } while (0) +# elif CORO_LOSER +# define coro_transfer(p,n) do { if (! setjmp ((p)->env )) longjmp ((n)->env, 1); } while (0) # else -# define coro_transfer(p,n) do { if (! setjmp ((p)->env)) longjmp ((n)->env, 1); } while (0) +# define coro_transfer(p,n) do { if (!sigsetjmp ((p)->env, 0)) siglongjmp ((n)->env, 1); } while (0) # endif # define coro_destroy(ctx) (void *)(ctx) @@ -244,7 +246,7 @@ struct coro_context { #elif CORO_ASM struct coro_context { - volatile void **sp; /* must be at offset 0 */ + void **sp; /* must be at offset 0 */ }; void __attribute__ ((__noinline__, __regparm__(2))) |