Fwd: CPAN Upload: JPRIT/Event-0.77.tar.gz
[email protected] (Joshua N Pritikin)
| Newsgroups | perl.loop |
|---|---|
| Message-ID | <[email protected]> |
----- Forwarded message from [email protected] ----- Date: Fri, 12 May 2000 15:02:55 +0200 Subject: CPAN Upload: JPRIT/Event-0.77.tar.gz From: [email protected] To: [email protected], [email protected] The uploaded file Event-0.77.tar.gz has entered CPAN as file: $CPAN/authors/id/JPRIT/Event-0.77.tar.gz size: 148538 bytes md5: fbcc4a392dcd6e9ea0a9ed923b24bac3 No action is required on your part Request entered by: JPRIT (Joshua N. Pritikin) Request entered on: Fri, 12 May 2000 13:02:11 GMT Request completed: Fri, 12 May 2000 13:02:55 GMT Virtually Yours, Id: paused,v 1.68 1999/10/22 14:39:12 k Exp k ----- End forwarded message ----- # This is a patch for Event-0.76 to update it to Event-0.77 # # To apply this patch: # STEP 1: Chdir to the source directory. # STEP 2: Run the 'applypatch' program with this patch file as input. # # If you do not have 'applypatch', it is part of the 'makepatch' package # that you can fetch from the Comprehensive Perl Archive Network: # http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz # In the above URL, 'x' should be 2 or higher. # # To apply this patch without the use of 'applypatch': # STEP 1: Chdir to the source directory. # STEP 2: Run the 'patch' program with this file as input. # #### End of Preamble #### #### Patch data follows #### gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/ChangeLog' '/usr/tmp/mp5615.d/new/Event-0.77/ChangeLog' Index: ./ChangeLog --- ./ChangeLog Wed Apr 26 13:13:37 2000 +++ ./ChangeLog Fri May 12 08:18:06 2000 @@ -1,3 +1,13 @@ +2000-05-12 Joshua Pritikin <[email protected]> + + * Release 0.77. + +2000-05-10 Joshua Pritikin <[email protected]> + + * Fixed an obscure SEGV discovered by [email protected]. + + * EventAPI += NVtime. + 2000-04-26 Joshua Pritikin <[email protected]> * Release 0.76. gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/Event.xs' '/usr/tmp/mp5615.d/new/Event-0.77/Event.xs' Index: ./Event.xs --- ./Event.xs Wed Apr 26 16:08:04 2000 +++ ./Event.xs Wed May 10 17:22:09 2000 @@ -40,6 +40,31 @@ static void Event_warn(const char* pat, # define warn Event_warn #endif +/* this is not well tested but could be very useful for debugging */ +#if 0 +#ifdef warn +# undef warn +#endif +#define warn Event_warn + +static void Event_warn(const char* pat, ...) { + STRLEN n_a; + dSP; + SV *msg; + va_list args; + /* perl_require_pv("Carp.pm"); Couldn't possibly be unloaded.*/ + va_start(args, pat); + msg = sv_newmortal(); + sv_vsetpvfn(msg, pat, strlen(pat), &args, Null(SV**), 0, 0); + va_end(args); + SvREADONLY_on(msg); + PUSHMARK(SP); + XPUSHs(msg); + PUTBACK; + perl_call_pv("Carp::carp", G_DISCARD); +} +#endif + #ifdef croak # undef croak #endif @@ -131,8 +156,8 @@ static pe_event_stats_vtbl Estat; static double IntervalEpsilon = 0.0002; static int TimeoutTooEarly=0; -static double (*myNVtime)(); -#define NVtime() (*myNVtime)() +static struct EventAPI api; +#define NVtime() (*api.NVtime)() static int pe_sys_fileno(SV *sv, char *context); @@ -279,36 +304,34 @@ BOOT: boot_group(); boot_queue(); { - struct EventAPI *api; SV *apisv; - New(PE_NEWID, api, 1, struct EventAPI); - api->Ver = EventAPI_VERSION; - api->start = pe_watcher_start; - api->queue = queueEvent; - api->now = pe_watcher_now; - api->suspend = pe_watcher_suspend; - api->resume = pe_watcher_resume; - api->stop = pe_watcher_stop; - api->cancel = pe_watcher_cancel; - api->tstart = pe_timeable_start; - api->tstop = pe_timeable_stop; - api->new_idle = (pe_idle* (*)(HV*,SV*)) pe_idle_allocate; - api->new_timer = (pe_timer* (*)(HV*,SV*)) pe_timer_allocate; - api->new_io = (pe_io* (*)(HV*,SV*)) pe_io_allocate; - api->new_var = (pe_var* (*)(HV*,SV*)) pe_var_allocate; - api->new_signal = (pe_signal*(*)(HV*,SV*)) pe_signal_allocate; - api->add_hook = capi_add_hook; - api->cancel_hook = pe_cancel_hook; - api->install_stats = pe_install_stats; - api->collect_stats = pe_collect_stats; - api->AllWatchers = &AllWatchers; - api->watcher_2sv = watcher_2sv; - api->sv_2watcher = sv_2watcher; - api->event_2sv = event_2sv; - api->sv_2event = sv_2event; - api->unloop = pe_unloop; + api.Ver = EventAPI_VERSION; + api.start = pe_watcher_start; + api.queue = queueEvent; + api.now = pe_watcher_now; + api.suspend = pe_watcher_suspend; + api.resume = pe_watcher_resume; + api.stop = pe_watcher_stop; + api.cancel = pe_watcher_cancel; + api.tstart = pe_timeable_start; + api.tstop = pe_timeable_stop; + api.new_idle = (pe_idle* (*)(HV*,SV*)) pe_idle_allocate; + api.new_timer = (pe_timer* (*)(HV*,SV*)) pe_timer_allocate; + api.new_io = (pe_io* (*)(HV*,SV*)) pe_io_allocate; + api.new_var = (pe_var* (*)(HV*,SV*)) pe_var_allocate; + api.new_signal = (pe_signal*(*)(HV*,SV*)) pe_signal_allocate; + api.add_hook = capi_add_hook; + api.cancel_hook = pe_cancel_hook; + api.install_stats = pe_install_stats; + api.collect_stats = pe_collect_stats; + api.AllWatchers = &AllWatchers; + api.watcher_2sv = watcher_2sv; + api.sv_2watcher = sv_2watcher; + api.event_2sv = event_2sv; + api.sv_2event = sv_2event; + api.unloop = pe_unloop; apisv = perl_get_sv("Event::API", 1); - sv_setiv(apisv, (IV)api); + sv_setiv(apisv, (IV)&api); SvREADONLY_on(apisv); } @@ -370,7 +393,7 @@ cache_time_api() SV **svp = hv_fetch(PL_modglobal, "Time::NVtime", 12, 0); if (!svp || !*svp || !SvIOK(*svp)) XSRETURN_NO; - myNVtime = (double(*)()) SvIV(*svp); + api.NVtime = (double(*)()) SvIV(*svp); XSRETURN_YES; void gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/TODO' '/usr/tmp/mp5615.d/new/Event-0.77/TODO' Index: ./TODO --- ./TODO Mon Apr 24 09:42:25 2000 +++ ./TODO Mon May 8 11:15:09 2000 @@ -1,5 +1,3 @@ -integrate with IPC::Open2/3 - finish up lexical warnings omitting parked=>1 should be a warning, not an error? gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/c/watcher.c' '/usr/tmp/mp5615.d/new/Event-0.77/c/watcher.c' Index: ./c/watcher.c --- ./c/watcher.c Mon Apr 24 09:37:24 2000 +++ ./c/watcher.c Wed May 10 17:05:48 2000 @@ -116,6 +116,11 @@ WKEYMETH(_watcher_callback) { if (gv && isGV(gv)) ok=1; } + else { + warn("Event: package '%s' doesn't exist (creating)", + SvPV(pkgsv, n_a)); + pkg = gv_stashsv(pkgsv, 1); + } if (!ok) { warn("Event: callback method %s->%s doesn't exist", HvNAME(pkg), name); gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/lib/Event.pm' '/usr/tmp/mp5615.d/new/Event-0.77/lib/Event.pm' Index: ./lib/Event.pm --- ./lib/Event.pm Wed Apr 26 13:13:50 2000 +++ ./lib/Event.pm Fri May 12 08:17:03 2000 @@ -13,7 +13,7 @@ use Carp; eval { require Carp::Heavy; }; # work around perl_call_pv bug XXX use vars qw($VERSION @EXPORT_OK $API $DebugLevel $Eval $DIED $Now); -$VERSION = '0.76'; +$VERSION = '0.77'; # If we inherit DynaLoader then we inherit AutoLoader; Bletch! require DynaLoader; gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/lib/Event.pod' '/usr/tmp/mp5615.d/new/Event-0.77/lib/Event.pod' Index: ./lib/Event.pod --- ./lib/Event.pod Mon Apr 24 09:26:26 2000 +++ ./lib/Event.pod Mon May 8 11:16:20 2000 @@ -681,6 +681,8 @@ There seems to be some sort of bug in th =head2 WHY MICROSOFT WINDOWS MIGHT BE FASTER THAN UNIX +This section is concerned with advanced kernel architecture. + B<A scalable and explicit event delivery mechanism for UNIX> I<Abstract:> UNIX applications not wishing to block when doing I/O often gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/lib/Event/EventAPI.h' '/usr/tmp/mp5615.d/new/Event-0.77/lib/Event/EventAPI.h' Index: ./lib/Event/EventAPI.h --- ./lib/Event/EventAPI.h Tue Apr 25 13:37:56 2000 +++ ./lib/Event/EventAPI.h Wed May 10 10:41:16 2000 @@ -211,6 +211,7 @@ struct EventAPI { /* EVERYTHING ELSE */ void (*unloop)(SV *); + double (*NVtime)(); }; static struct EventAPI *GEventAPI=0; #### End of Patch data #### #### ApplyPatch data follows #### # Data version : 1.0 # Date generated : Fri May 12 09:01:18 2000 # Generated by : makepatch 2.00 (2.0BETA) # Recurse directories : Yes # p 'ChangeLog' 25474 958133886 0100444 # p 'Event.xs' 18615 957993729 0100444 # p 'TODO' 1775 957798909 0100444 # p 'c/watcher.c' 9400 957992748 0100444 # p 'lib/Event.pm' 4074 958133823 0100444 # p 'lib/Event.pod' 24978 957798980 0100444 # p 'lib/Event/EventAPI.h' 5624 957969676 0100444 #### End of ApplyPatch data #### #### End of Patch kit [created: Fri May 12 09:01:18 2000] #### #### Checksum: 236 8131 25869 ####