ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro-Multicore/Multicore.xs
(Generate patch)

Comparing Coro-Multicore/Multicore.xs (file contents):
Revision 1.19 by root, Mon Aug 13 10:39:45 2018 UTC vs.
Revision 1.21 by root, Sun Aug 26 15:30:55 2018 UTC

1/* most win32 perls are beyond fixing, requiring dTHX */ 1/* most win32 perls are beyond fixing, requiring dTHX */
2/* even for ISO-C functions such as malloc. avoid! avoid! avoid! */ 2/* even for ISO-C functions such as malloc. avoid! avoid! avoid! */
3/* and fial to define numerous symbols, but still overrwide them */ 3/* and fail to define numerous symbols, but still overrwide them */
4/* with non-working versions (e.g. setjmp). */ 4/* with non-working versions (e.g. setjmp). */
5#ifdef _WIN32 5#ifdef _WIN32
6# define PERL_CORE 1 6/*# define PERL_CORE 1 fixes some, breaks others */
7#else 7#else
8# define PERL_NO_GET_CONTEXT 8# define PERL_NO_GET_CONTEXT
9#endif 9#endif
10 10
11#include "EXTERN.h" 11#include "EXTERN.h"
202 X_TLS_SET (current_key, 0); 202 X_TLS_SET (current_key, 0);
203 return; 203 return;
204 } 204 }
205 205
206 struct tctx *ctx = tctx_get (); 206 struct tctx *ctx = tctx_get ();
207 ctx->coro = SvREFCNT_inc_NN (CORO_CURRENT); 207 ctx->coro = SvREFCNT_inc_simple_NN (CORO_CURRENT);
208 ctx->wait_f = 0; 208 ctx->wait_f = 0;
209 209
210 X_TLS_SET (current_key, ctx); 210 X_TLS_SET (current_key, ctx);
211 pthread_sigmask (SIG_SETMASK, &fullsigset, &cursigset); 211 pthread_sigmask (SIG_SETMASK, &fullsigset, &cursigset);
212 212
360 360
361void 361void
362sleep (NV seconds) 362sleep (NV seconds)
363 CODE: 363 CODE:
364 perlinterp_release (); 364 perlinterp_release ();
365 usleep (seconds * 1e6); 365 {
366 int nsec = seconds;
367 if (nsec) sleep (nsec);
368 nsec = (seconds - nsec) * 1e9;
369 if (nsec) usleep (nsec);
370 }
366 perlinterp_acquire (); 371 perlinterp_acquire ();
367 372

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines