Fwd: CPAN Upload: JPRIT/Event-0.75.tar.gz
[email protected] (Joshua N Pritikin)
| Newsgroups | perl.loop |
|---|---|
| Message-ID | <[email protected]> |
----- Forwarded message from [email protected] ----- Date: Mon, 24 Apr 2000 22:28:34 +0200 Subject: CPAN Upload: JPRIT/Event-0.75.tar.gz From: [email protected] To: [email protected], [email protected] Reply-To: [email protected] The uploaded file Event-0.75.tar.gz has entered CPAN as file: $CPAN/authors/id/JPRIT/Event-0.75.tar.gz size: 148243 bytes md5: 36ffe7bc32b983ce512b877987d54158 No action is required on your part Request entered by: JPRIT (Joshua N. Pritikin) Request entered on: Mon, 24 Apr 2000 20:27:43 GMT Request completed: Mon, 24 Apr 2000 20:28:34 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.74 to update it to Event-0.75 # # 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/mp2253.d/old/Event-0.74/ChangeLog' '/usr/tmp/mp2253.d/new/Event-0.75/ChangeLog' Index: ./ChangeLog --- ./ChangeLog Wed Apr 19 12:43:42 2000 +++ ./ChangeLog Mon Apr 24 09:43:08 2000 @@ -1,3 +1,12 @@ +2000-04-24 Joshua Pritikin <[email protected]> + + * Release 0.75. + + * Attributes called in "set" mode now return the new value. + + * Renamed data() to private() and added back the old data(). + Added tests & updated the pod. + 2000-04-19 Joshua Pritikin <[email protected]> * Release 0.74. gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/TODO' '/usr/tmp/mp2253.d/new/Event-0.75/TODO' Index: ./TODO --- ./TODO Tue Mar 14 16:53:26 2000 +++ ./TODO Mon Apr 24 09:42:25 2000 @@ -4,8 +4,6 @@ finish up lexical warnings omitting parked=>1 should be a warning, not an error? -attribute set methods should return the new value? - demo/tail-f see File::Tail or GNU textutils for implementation examples gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/c/group.c' '/usr/tmp/mp2253.d/new/Event-0.75/c/group.c' Index: ./c/group.c --- ./c/group.c Tue Feb 15 15:17:22 2000 +++ ./c/group.c Mon Apr 24 09:38:14 2000 @@ -117,16 +117,17 @@ static void pe_group_del(pe_group *gp, p WKEYMETH(_group_timeout) { pe_group *gp = (pe_group*)ev; - if (!nval) { - dSP; - XPUSHs(gp->timeout); - PUTBACK; - } else { + if (nval) { SV *old = gp->timeout; gp->timeout = SvREFCNT_inc(nval); SvREFCNT_dec(old); VERIFYINTERVAL("group", gp->timeout); /* recalc expiration XXX */ + } + { + dSP; + XPUSHs(gp->timeout); + PUTBACK; } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/c/idle.c' '/usr/tmp/mp2253.d/new/Event-0.75/c/idle.c' Index: ./c/idle.c --- ./c/idle.c Tue Feb 15 15:17:55 2000 +++ ./c/idle.c Mon Apr 24 09:38:47 2000 @@ -100,29 +100,31 @@ static void pe_idle_stop(pe_watcher *ev) WKEYMETH(_idle_max_interval) { pe_idle *ip = (pe_idle*) ev; - if (!nval) { - dSP; - XPUSHs(ip->max_interval); - PUTBACK; - } else { + if (nval) { SV *old = ip->max_interval; ip->max_interval = SvREFCNT_inc(nval); if (old) SvREFCNT_dec(old); VERIFYINTERVAL("max", ip->max_interval); } + { + dSP; + XPUSHs(ip->max_interval); + PUTBACK; + } } WKEYMETH(_idle_min_interval) { pe_idle *ip = (pe_idle*) ev; - if (!nval) { - dSP; - XPUSHs(ip->min_interval); - PUTBACK; - } else { + if (nval) { SV *old = ip->min_interval; ip->min_interval = SvREFCNT_inc(nval); if (old) SvREFCNT_dec(old); VERIFYINTERVAL("min", ip->min_interval); + } + { + dSP; + XPUSHs(ip->min_interval); + PUTBACK; } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/c/io.c' '/usr/tmp/mp2253.d/new/Event-0.75/c/io.c' Index: ./c/io.c --- ./c/io.c Thu Feb 10 08:27:22 2000 +++ ./c/io.c Mon Apr 24 09:39:34 2000 @@ -127,11 +127,7 @@ static void pe_io_reset_handle(pe_watche WKEYMETH(_io_poll) { pe_io *io = (pe_io*)ev; - if (!nval) { - dSP; - XPUSHs(sv_2mortal(events_mask_2sv(io->poll))); - PUTBACK; - } else { + if (nval) { int nev = sv_2events_mask(nval, PE_R|PE_W|PE_E); if (io->timeout) nev |= PE_T; else nev &= ~PE_T; @@ -140,48 +136,45 @@ WKEYMETH(_io_poll) { _io_restart(ev); } } + { + dSP; + XPUSHs(sv_2mortal(events_mask_2sv(io->poll))); + PUTBACK; + } } WKEYMETH(_io_handle) { pe_io *io = (pe_io*)ev; - if (!nval) { - dSP; - XPUSHs(io->handle); - PUTBACK; - } else { + if (nval) { SV *old = io->handle; io->handle = SvREFCNT_inc(nval); SvREFCNT_dec(old); io->fd = -1; _io_restart(ev); } + { + dSP; + XPUSHs(io->handle); + PUTBACK; + } } WKEYMETH(_io_timeout) { pe_io *io = (pe_io*)ev; - if (!nval) { + if (nval) { + io->timeout = SvOK(nval)? SvNV(nval) : 0; /*undef is ok*/ + _io_restart(ev); + } + { dSP; XPUSHs(sv_2mortal(newSVnv(io->timeout))); PUTBACK; - } else { - io->timeout = SvOK(nval)? SvNV(nval) : 0; /*undef is ok*/ - _io_restart(ev); } } WKEYMETH(_io_timeout_cb) { pe_io *io = (pe_io*)ev; - if (!nval) { - SV *ret = (WaTMPERLCB(ev)? - (SV*) io->tm_callback : - (io->tm_callback? - sv_2mortal(newSVpvf("<FPTR=0x%x EXT=0x%x>", - io->tm_callback, io->tm_ext_data)) : - &PL_sv_undef)); - dSP; - XPUSHs(ret); - PUTBACK; - } else { + if (nval) { AV *av; SV *sv; SV *old=0; @@ -207,6 +200,17 @@ WKEYMETH(_io_timeout_cb) { } if (old) SvREFCNT_dec(old); + } + { + SV *ret = (WaTMPERLCB(ev)? + (SV*) io->tm_callback : + (io->tm_callback? + sv_2mortal(newSVpvf("<FPTR=0x%x EXT=0x%x>", + io->tm_callback, io->tm_ext_data)) : + &PL_sv_undef)); + dSP; + XPUSHs(ret); + PUTBACK; } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/c/signal.c' '/usr/tmp/mp2253.d/new/Event-0.75/c/signal.c' Index: ./c/signal.c --- ./c/signal.c Tue Feb 8 17:24:47 2000 +++ ./c/signal.c Mon Apr 24 09:40:05 2000 @@ -69,12 +69,7 @@ static void pe_signal_stop(pe_watcher *_ WKEYMETH(_signal_signal) { pe_signal *sg = (pe_signal*) ev; - if (!nval) { - dSP; - XPUSHs(sg->signal > 0? - sv_2mortal(newSVpv(PL_sig_name[sg->signal],0)) : &PL_sv_undef); - PUTBACK; - } else { + if (nval) { STRLEN n_a; int active = WaPOLLING(ev); int sig = whichsig(SvPV(nval, n_a)); @@ -86,6 +81,12 @@ WKEYMETH(_signal_signal) { if (active) pe_watcher_off(ev); sg->signal = sig; if (active) pe_watcher_on(ev, 0); + } + { + dSP; + XPUSHs(sg->signal > 0? + sv_2mortal(newSVpv(PL_sig_name[sg->signal],0)) : &PL_sv_undef); + PUTBACK; } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/c/tied.c' '/usr/tmp/mp2253.d/new/Event-0.75/c/tied.c' Index: ./c/tied.c --- ./c/tied.c Wed Mar 8 11:46:43 2000 +++ ./c/tied.c Mon Apr 24 09:40:32 2000 @@ -60,25 +60,22 @@ static void pe_tied_alarm(pe_watcher *ev WKEYMETH(_tied_at) { pe_tied *tp = (pe_tied*) ev; - if (!nval) { - dSP; - XPUSHs(sv_2mortal(newSVnv(tp->tm.at))); - PUTBACK; - } else { + if (nval) { pe_timeable_stop(&tp->tm); if (SvOK(nval)) { tp->tm.at = SvNV(nval); pe_timeable_start(&tp->tm); } } + { + dSP; + XPUSHs(sv_2mortal(newSVnv(tp->tm.at))); + PUTBACK; + } } WKEYMETH(_tied_flags) { - if (!nval) { - dSP; - XPUSHs(sv_2mortal(newSViv(ev->flags & PE_VISIBLE_FLAGS))); - PUTBACK; - } else { + if (nval) { IV nflags = SvIV(nval); IV flip = nflags ^ ev->flags; IV other = flip & ~(PE_CBTIME|PE_INVOKE1); @@ -90,6 +87,11 @@ WKEYMETH(_tied_flags) { } if (other) warn("Other flags (0x%x) cannot be changed", other); + } + { + dSP; + XPUSHs(sv_2mortal(newSViv(ev->flags & PE_VISIBLE_FLAGS))); + PUTBACK; } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/c/timeable.c' '/usr/tmp/mp2253.d/new/Event-0.75/c/timeable.c' Index: ./c/timeable.c --- ./c/timeable.c Wed Dec 22 17:00:06 1999 +++ ./c/timeable.c Mon Apr 24 09:40:53 2000 @@ -90,12 +90,13 @@ static void pe_timeable_adjust(double de } WKEYMETH(_timeable_hard) { /* applies to all timers in a watcher; is ok? */ - if (!nval) { + if (nval) { + if (sv_true(nval)) WaHARD_on(ev); else WaHARD_off(ev); + } + { dSP; XPUSHs(boolSV(WaHARD(ev))); PUTBACK; - } else { - if (sv_true(nval)) WaHARD_on(ev); else WaHARD_off(ev); } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/c/timer.c' '/usr/tmp/mp2253.d/new/Event-0.75/c/timer.c' Index: ./c/timer.c --- ./c/timer.c Tue Feb 15 15:16:56 2000 +++ ./c/timer.c Mon Apr 24 09:41:17 2000 @@ -52,30 +52,32 @@ static void pe_timer_alarm(pe_watcher *w WKEYMETH(_timer_at) { pe_timer *tp = (pe_timer*)ev; - if (!nval) { - dSP; - XPUSHs(sv_2mortal(newSVnv(tp->tm.at))); - PUTBACK; - } else { + if (nval) { int active = WaPOLLING(ev); if (active) pe_watcher_off(ev); tp->tm.at = SvNV(nval); if (active) pe_watcher_on(ev, 0); } + { + dSP; + XPUSHs(sv_2mortal(newSVnv(tp->tm.at))); + PUTBACK; + } } WKEYMETH(_timer_interval) { pe_timer *tp = (pe_timer*)ev; - if (!nval) { - dSP; - XPUSHs(tp->interval); - PUTBACK; - } else { + if (nval) { SV *old = tp->interval; tp->interval = SvREFCNT_inc(nval); SvREFCNT_dec(old); VERIFYINTERVAL("timer", tp->interval); /* recalc expiration XXX */ + } + { + dSP; + XPUSHs(tp->interval); + PUTBACK; } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/c/var.c' '/usr/tmp/mp2253.d/new/Event-0.75/c/var.c' Index: ./c/var.c --- ./c/var.c Tue Feb 8 17:24:51 2000 +++ ./c/var.c Mon Apr 24 09:41:58 2000 @@ -134,23 +134,20 @@ static void _var_restart(pe_watcher *ev) WKEYMETH(_var_events) { pe_var *vp = (pe_var*)ev; - if (!nval) { + if (nval) { + vp->events = sv_2events_mask(nval, PE_R|PE_W); + _var_restart(ev); + } + { dSP; XPUSHs(sv_2mortal(events_mask_2sv(vp->events))); PUTBACK; - } else { - vp->events = sv_2events_mask(nval, PE_R|PE_W); - _var_restart(ev); } } WKEYMETH(_var_variable) { pe_var *vp = (pe_var*)ev; - if (!nval) { - dSP; - XPUSHs(vp->variable); - PUTBACK; - } else { + if (nval) { SV *old = vp->variable; int active = WaPOLLING(ev); if (!SvROK(nval)) @@ -161,6 +158,11 @@ WKEYMETH(_var_variable) { vp->variable = SvREFCNT_inc(nval); if (active) pe_watcher_on(ev, 0); SvREFCNT_dec(old); + } + { + dSP; + XPUSHs(vp->variable); + PUTBACK; } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/c/watcher.c' '/usr/tmp/mp2253.d/new/Event-0.75/c/watcher.c' Index: ./c/watcher.c --- ./c/watcher.c Wed Mar 8 11:45:45 2000 +++ ./c/watcher.c Mon Apr 24 09:37:24 2000 @@ -80,17 +80,7 @@ static void pe_watcher_dtor(pe_watcher * /********************************** *******************************/ WKEYMETH(_watcher_callback) { - if (!nval) { - SV *ret = (WaPERLCB(ev)? - (SV*) ev->callback : - (ev->callback? - sv_2mortal(newSVpvf("<FPTR=0x%x EXT=0x%x>", - ev->callback, ev->ext_data)) : - &PL_sv_undef)); - dSP; - XPUSHs(ret); - PUTBACK; - } else { + if (nval) { AV *av; SV *sv; SV *old=0; @@ -140,6 +130,17 @@ WKEYMETH(_watcher_callback) { if (old) SvREFCNT_dec(old); } + { + SV *ret = (WaPERLCB(ev)? + (SV*) ev->callback : + (ev->callback? + sv_2mortal(newSVpvf("<FPTR=0x%x EXT=0x%x>", + ev->callback, ev->ext_data)) : + &PL_sv_undef)); + dSP; + XPUSHs(ret); + PUTBACK; + } } WKEYMETH(_watcher_cbtime) { @@ -152,40 +153,40 @@ WKEYMETH(_watcher_cbtime) { } WKEYMETH(_watcher_desc) { - if (!nval) { + if (nval) { + sv_setsv(ev->desc, nval); + } + { dSP; XPUSHs(ev->desc); PUTBACK; - } else { - sv_setsv(ev->desc, nval); } } WKEYMETH(_watcher_debug) { - if (!nval) { + if (nval) { + if (sv_true(nval)) WaDEBUG_on(ev); else WaDEBUG_off(ev); + } + { dSP; XPUSHs(boolSV(WaDEBUG(ev))); PUTBACK; - } else { - if (sv_true(nval)) WaDEBUG_on(ev); else WaDEBUG_off(ev); } } WKEYMETH(_watcher_priority) { - if (!nval) { + if (nval) { + ev->prio = SvIV(nval); + } + { dSP; XPUSHs(sv_2mortal(newSViv(ev->prio))); PUTBACK; - } else - ev->prio = SvIV(nval); + } } WKEYMETH(_watcher_reentrant) { - if (!nval) { - dSP; - XPUSHs(boolSV(WaREENTRANT(ev))); - PUTBACK; - } else { + if (nval) { if (sv_true(nval)) WaREENTRANT_on(ev); else { @@ -195,43 +196,51 @@ WKEYMETH(_watcher_reentrant) { WaREENTRANT_off(ev); } } + { + dSP; + XPUSHs(boolSV(WaREENTRANT(ev))); + PUTBACK; + } } WKEYMETH(_watcher_repeat) { - if (!nval) { + if (nval) { + if (sv_true(nval)) WaREPEAT_on(ev); else WaREPEAT_off(ev); + } + { dSP; XPUSHs(boolSV(WaREPEAT(ev))); PUTBACK; - } else { - if (sv_true(nval)) WaREPEAT_on(ev); else WaREPEAT_off(ev); } } WKEYMETH(_watcher_suspend) { - if (!nval) { - dSP; - XPUSHs(boolSV(WaSUSPEND(ev))); - PUTBACK; - } else { + if (nval) { if (sv_true(nval)) pe_watcher_suspend(ev); else pe_watcher_resume(ev); } + { + dSP; + XPUSHs(boolSV(WaSUSPEND(ev))); + PUTBACK; + } } WKEYMETH(_watcher_max_cb_tm) { - if (!nval) { - dSP; - XPUSHs(sv_2mortal(newSViv(ev->max_cb_tm))); - PUTBACK; - } else { + if (nval) { int tm = SvIOK(nval)? SvIV(nval) : 0; if (tm < 0) { warn("e_max_cb_tm must be non-negative"); tm=0; } ev->max_cb_tm = tm; + } + { + dSP; + XPUSHs(sv_2mortal(newSViv(ev->max_cb_tm))); + PUTBACK; } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/lib/Event.pm' '/usr/tmp/mp2253.d/new/Event-0.75/lib/Event.pm' Index: ./lib/Event.pm --- ./lib/Event.pm Wed Apr 19 12:43:26 2000 +++ ./lib/Event.pm Mon Apr 24 09:43:21 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.74'; +$VERSION = '0.75'; # If we inherit DynaLoader then we inherit AutoLoader; Bletch! require DynaLoader; gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/lib/Event.pod' '/usr/tmp/mp2253.d/new/Event-0.75/lib/Event.pod' Index: ./lib/Event.pod --- ./lib/Event.pod Wed Apr 19 08:17:47 2000 +++ ./lib/Event.pod Mon Apr 24 09:26:26 2000 @@ -374,8 +374,11 @@ When the callback was invoked most recen =item data => $anything -Use the C<data()> method to associate arbitrary data with a watcher. -Each caller's package accesses its own private data attribute. +The C<data()> method associates arbitrary data with a watcher. + +This method is not intended for implementers of watchers. If you are +subclassing or implementing a watcher, consider the C<private()> +method. =item debug => $bool @@ -448,6 +451,13 @@ events. Changes the watcher's priority to the given level. Events generated by a watcher usually inherit the priority of the watcher. + +=item private => $anything + +Use the C<private()> method to associate arbitrary data with a +watcher. This method is intended for implementers of watchers or +watcher subclasses. Each caller's package accesses its own private +attribute. =item reentrant => $bool gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/lib/Event/Watcher.pm' '/usr/tmp/mp2253.d/new/Event-0.75/lib/Event/Watcher.pm' Index: ./lib/Event/Watcher.pm --- ./lib/Event/Watcher.pm Wed Apr 19 08:12:03 2000 +++ ./lib/Event/Watcher.pm Mon Apr 24 09:20:05 2000 @@ -97,13 +97,22 @@ sub configure { } } -sub data { # assumes $self is a HASH ref +sub private { # assumes $self is a HASH ref my $self = shift; my $pkg = caller; if (@_) { $self->{$pkg} = shift } else { $self->{$pkg}; + } +} + +sub data { # assumes $self is a HASH ref + my $self = shift; + if (@_) { + $self->{_user_data_} = shift + } else { + $self->{_user_data_}; } } gdiff -up '/usr/tmp/mp2253.d/old/Event-0.74/t/data.t' '/usr/tmp/mp2253.d/new/Event-0.75/t/data.t' Index: ./t/data.t --- ./t/data.t Wed Apr 19 12:42:13 2000 +++ ./t/data.t Mon Apr 24 09:27:17 2000 @@ -1,20 +1,22 @@ #!./perl -w -use Test; plan tests => 6; +use Test; plan tests => 8; use Event; -my $w = Event->idle(parked => 1); +my $w = Event->idle(parked => 1, data => 'data'); -ok !$w->data; -ok $w->data(1); -ok $w->data; +ok $w->data, 'data'; +ok !$w->private; +ok $w->private(1); +ok $w->private; package Grapes; use Test; -ok !$w->data; -ok $w->data(2), 2; +ok $w->data, 'data'; +ok !$w->private; +ok $w->private(2), 2; package main; -ok $w->data, 1; +ok $w->private, 1; #### End of Patch data #### #### ApplyPatch data follows #### # Data version : 1.0 # Date generated : Mon Apr 24 16:25:11 2000 # Generated by : makepatch 2.00 (2.0BETA) # Recurse directories : Yes # p 'ChangeLog' 24884 956583788 0100444 # p 'TODO' 1827 956583745 0100444 # p 'c/group.c' 3766 956583494 0100444 # p 'c/idle.c' 3685 956583527 0100444 # p 'c/io.c' 5389 956583574 0100444 # p 'c/signal.c' 3845 956583605 0100444 # p 'c/tied.c' 2674 956583632 0100444 # p 'c/timeable.c' 2636 956583653 0100444 # p 'c/timer.c' 2222 956583677 0100444 # p 'c/var.c' 4240 956583718 0100444 # p 'c/watcher.c' 9408 956583444 0100444 # p 'lib/Event.pm' 4074 956583801 0100444 # p 'lib/Event.pod' 24666 956582786 0100444 # p 'lib/Event/Watcher.pm' 2399 956582405 0100444 # p 't/data.t' 223 956582837 0100444 #### End of ApplyPatch data #### #### End of Patch kit [created: Mon Apr 24 16:25:11 2000] #### #### Checksum: 710 16958 58763 #### -- "Never ascribe to malice that which can be explained by stupidity." via, but not speaking for Deutsche Bank