A scheduler with Reflex::Wakeup

[email protected] (Giacomo Montagner) Wed, 9 Apr 2014 16:48:16 +0200
Newsgroups perl.poe
Message-ID <CAJox6uzzb+nhY_qD3AggQVihAy7azoDc3rDMFJ_LpbjweB65YA@mail.gmail.com>
--001a11c35080d78ed804f69d30bc
Content-Type: multipart/alternative; boundary=001a11c35080d78ed504f69d30ba

--001a11c35080d78ed504f69d30ba
Content-Type: text/plain; charset=ISO-8859-1

Hi all,
  I'm to write a little scheduler with Reflex. I tried creating some
objects watching a Reflex::Interval via Reflex::Trait::Watched and everyone
keeps being scheduled at the right time. Then I substituted
Reflex::Interval with Reflex::Wakeup (because I want to be able to
reschedule the events at different times, based on epoch), but after the
first call to the callback method (one for each object) the program exits.
The two examples are very similar:

https://gist.github.com/84f6541e80c2bdaa3241.git (with Reflex::Interval)
https://gist.github.com/90d83b3ea35af01e6ed3.git (with Reflex::Wakeup)

(I attach them).

Can someone please help me working this out?
Is there a way to enable POE::Kernel debug using Reflex?

Thanks in advance,
Giacomo

--001a11c35080d78ed504f69d30ba
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div><div><div><div>Hi all, <br></div>=A0 I&#39;=
m to write a little scheduler with Reflex. I tried creating some objects wa=
tching a Reflex::Interval via Reflex::Trait::Watched and everyone keeps bei=
ng scheduled at the right time. Then I substituted Reflex::Interval with Re=
flex::Wakeup (because I want to be able to reschedule the events at differe=
nt times, based on epoch), but after the first call to the callback method =
(one for each object) the program exits. The two examples are very similar:=
 <br>
<br><a href=3D"https://gist.github.com/84f6541e80c2bdaa3241.git">https://gi=
st.github.com/84f6541e80c2bdaa3241.git</a> (with Reflex::Interval)<br><a hr=
ef=3D"https://gist.github.com/90d83b3ea35af01e6ed3.git">https://gist.github=
.com/90d83b3ea35af01e6ed3.git</a> (with Reflex::Wakeup)<br>
<br></div>(I attach them).<br><br></div>Can someone please help me working =
this out? <br></div>Is there a way to enable POE::Kernel debug using Reflex=
? <br><br></div>Thanks in advance, <br></div>Giacomo<br><div><div><div>
<div><div><br></div></div></div></div></div></div>

--001a11c35080d78ed504f69d30ba--
--001a11c35080d78ed804f69d30bc
Content-Type: application/x-perl; name="perl_reflex_interval_test1.pl"
Content-Disposition: attachment; filename="perl_reflex_interval_test1.pl"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_htsq9ip60

IyEvdXNyL2Jpbi9wZXJsCiMgdmltOiBzZSB0cz00IGV0IHN5bj1wZXJsOgoKdXNlIHN0cmljdDsK
dXNlIHdhcm5pbmdzOwp1c2UgdmVyc2lvbjsgb3VyICRWRVJTSU9OID0gcXYoMC4wLjEpOwp1c2Ug
djUuMDEwLjAwMTsKdXNlIHV0Zjg7CgpwYWNrYWdlIFRpbWVkOjpPYmplY3Q7Cgp1c2UgTW9vc2U7
CmV4dGVuZHMgIlJlZmxleDo6QmFzZSI7Cgp1c2UgUmVmbGV4OjpJbnRlcnZhbDsKCmhhcyBuYW1l
ID0+ICgKICBpcyAgPT4gJ3JvJywKICBpc2EgPT4gJ1N0cicsCik7CgpoYXMgcnVuX29uID0+ICgK
ICAgIGlzICA9PiAncncnLAogICAgaXNhID0+ICdJbnQnLAopOwoKaGFzIF9sYXN0X3J1biA9PiAo
CiAgaXMgID0+ICdydycsCiAgaXNhID0+ICdJbnQnLAopOwoKaGFzIGludGVydmFsID0+ICgKICBp
cyAgPT4gJ3JvJywKICBpc2EgPT4gJ0ludCcsCik7CgpoYXMgY2xvY2sgPT4gKAogICAgaXNhICAg
ICA9PiAnUmVmbGV4OjpJbnRlcnZhbCcsCiAgICBpcyAgICAgID0+ICdydycsCiAgICB0cmFpdHMg
ID0+IFsgJ1JlZmxleDo6VHJhaXQ6OldhdGNoZWQnIF0sCiAgICBidWlsZGVyID0+ICdfYnVpbGRf
Y2xvY2snLAogICAgbGF6eSAgICA9PiAxLAopOwoKc3ViIF9idWlsZF9jbG9jayB7CiAgICBteSAk
c2VsZiA9IHNoaWZ0OwogICAgUmVmbGV4OjpJbnRlcnZhbC0+bmV3KHsKICAgICAgICBhdXRvX3N0
YXJ0ICA9PiAxLAogICAgICAgIGF1dG9fcmVwZWF0ID0+IDAsCiAgICAgICAgaW50ZXJ2YWwgICAg
PT4gJHNlbGYtPmludGVydmFsLAogICAgfSk7Cn0KCnN1YiBCVUlMRCB7CiAgICBteSAkc2VsZiA9
IHNoaWZ0OwogICAgc2F5ICJPYmplY3QgIiwgJHNlbGYtPm5hbWUsICIgaXMgZHVlIG9uICIsICRz
ZWxmLT5ydW5fb24oIHRpbWUgKyAkc2VsZi0+aW50ZXJ2YWwgKSwgIiAoIiwgJHNlbGYtPmludGVy
dmFsLCAicyBmcm9tIG5vdykiOwogICAgIyBCdWlsZCBhbGFybQogICAgJHNlbGYtPmNsb2NrOwp9
CgpzdWIgb25fY2xvY2tfdGljayB7CiAgICBzYXkgIk9OX0NMT0NLX1RJQ0shIjsKICAgIG15ICRz
ZWxmID0gc2hpZnQ7CiAgICBzYXkgIiAgT2JqZWN0ICIsICRzZWxmLT5uYW1lLCAiIHJ1bm5pbmcg
b246ICIsICRzZWxmLT5fbGFzdF9ydW4oIHRpbWUgKSwgIiAoZXhwZWN0ZWQ6ICIsICRzZWxmLT5y
dW5fb24sICIpLCAiOwogICAgc2F5ICIgICAgT2JqZWN0ICIsICRzZWxmLT5uYW1lLCAiIGlzIGR1
ZSBvbiAiLCAkc2VsZi0+cnVuX29uKCB0aW1lICsgJHNlbGYtPmludGVydmFsICksICIgKCIsICRz
ZWxmLT5pbnRlcnZhbCwgInMgZnJvbSBub3cpIjsKICAgICMgTWFudWFsbHkgcmVwZWF0IGFmdGVy
IGV4ZWN1dGlvbiBpcyBjb21wbGV0ZSBoZXJlCiAgICAkc2VsZi0+Y2xvY2stPnJlcGVhdCgpOwp9
CgpfX1BBQ0tBR0VfXy0+bWV0YS0+bWFrZV9pbW11dGFibGU7CgoKcGFja2FnZSBtYWluOwoKbXkg
QG9ianM7Cgpmb3IgKHF3e0pvaG4gSm9lIEphbWVzIEphY2sgSmFrZX0pIHsKICAgIHB1c2ggQG9i
anMsIFRpbWVkOjpPYmplY3QtPm5ldygKICAgICAgICBuYW1lICAgICA9PiAkXywKICAgICAgICBp
bnRlcnZhbCA9PiBpbnQoIHJhbmQoKSAqIDEwICkgKyAxLAogICAgKTsKfQoKUmVmbGV4LT5ydW5f
YWxsOwoKX19FTkRfXwoKT3V0cHV0czoKCk9iamVjdCBKb2huIGlzIGR1ZSBvbiAxMzk3MDMxNDI5
ICg3cyBmcm9tIG5vdykKT2JqZWN0IEpvZSBpcyBkdWUgb24gMTM5NzAzMTQyNSAoM3MgZnJvbSBu
b3cpCk9iamVjdCBKYW1lcyBpcyBkdWUgb24gMTM5NzAzMTQyNyAoNXMgZnJvbSBub3cpCk9iamVj
dCBKYWNrIGlzIGR1ZSBvbiAxMzk3MDMxNDI0ICgycyBmcm9tIG5vdykKT2JqZWN0IEpha2UgaXMg
ZHVlIG9uIDEzOTcwMzE0MjcgKDVzIGZyb20gbm93KQpPTl9BTEFSTV9USU1FIQogIE9iamVjdCBK
YWNrIHJ1bm5pbmcgb246IDEzOTcwMzE0MjQgKGV4cGVjdGVkOiAxMzk3MDMxNDI0KSwgCiAgICBP
YmplY3QgSmFjayB3aWxsIGJlIGR1ZSBvbiAxMzk3MDMxNDI2ICgycyBmcm9tIG5vdykKT05fQUxB
Uk1fVElNRSEKICBPYmplY3QgSm9lIHJ1bm5pbmcgb246IDEzOTcwMzE0MjUgKGV4cGVjdGVkOiAx
Mzk3MDMxNDI1KSwgCiAgICBPYmplY3QgSm9lIHdpbGwgYmUgZHVlIG9uIDEzOTcwMzE0MjggKDNz
IGZyb20gbm93KQpPTl9BTEFSTV9USU1FIQogIE9iamVjdCBKYW1lcyBydW5uaW5nIG9uOiAxMzk3
MDMxNDI3IChleHBlY3RlZDogMTM5NzAzMTQyNyksIAogICAgT2JqZWN0IEphbWVzIHdpbGwgYmUg
ZHVlIG9uIDEzOTcwMzE0MzIgKDVzIGZyb20gbm93KQpPTl9BTEFSTV9USU1FIQogIE9iamVjdCBK
YWtlIHJ1bm5pbmcgb246IDEzOTcwMzE0MjcgKGV4cGVjdGVkOiAxMzk3MDMxNDI3KSwgCiAgICBP
YmplY3QgSmFrZSB3aWxsIGJlIGR1ZSBvbiAxMzk3MDMxNDMyICg1cyBmcm9tIG5vdykKT05fQUxB
Uk1fVElNRSEKICBPYmplY3QgSm9obiBydW5uaW5nIG9uOiAxMzk3MDMxNDI5IChleHBlY3RlZDog
MTM5NzAzMTQyOSksIAogICAgT2JqZWN0IEpvaG4gd2lsbCBiZSBkdWUgb24gMTM5NzAzMTQzNiAo
N3MgZnJvbSBub3cpCg==
--001a11c35080d78ed804f69d30bc
Content-Type: application/x-perl; name="perl_reflex_wakeup_test1.pl"
Content-Disposition: attachment; filename="perl_reflex_wakeup_test1.pl"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_htsqbrz81

IyEvdXNyL2Jpbi9wZXJsCiMgdmltOiBzZSB0cz00IGV0IHN5bj1wZXJsOgoKdXNlIHN0cmljdDsK
dXNlIHdhcm5pbmdzOwp1c2UgdmVyc2lvbjsgb3VyICRWRVJTSU9OID0gcXYoMC4wLjEpOwp1c2Ug
djUuMDEwLjAwMTsKdXNlIHV0Zjg7CgpwYWNrYWdlIFRpbWVkOjpPYmplY3Q7Cgp1c2UgTW9vc2U7
CmV4dGVuZHMgIlJlZmxleDo6QmFzZSI7Cgp1c2UgUmVmbGV4OjpXYWtldXA7CiAKaGFzIG5hbWUg
PT4gKAogIGlzICA9PiAncm8nLAogIGlzYSA9PiAnU3RyJywKKTsKCmhhcyBydW5fb24gPT4gKAog
IGlzICA9PiAncncnLAogIGlzYSA9PiAnSW50JywKKTsKCmhhcyBfbGFzdF9ydW4gPT4gKAogIGlz
ICA9PiAncncnLAogIGlzYSA9PiAnSW50JywKKTsKCmhhcyBpbnRlcnZhbCA9PiAoCiAgaXMgID0+
ICdybycsCiAgaXNhID0+ICdJbnQnLAopOwoKaGFzIGFsYXJtID0+ICgKICAgIGlzYSAgICAgPT4g
J1JlZmxleDo6V2FrZXVwJywKICAgIGlzICAgICAgPT4gJ3J3JywKICAgIHRyYWl0cyAgPT4gWyAn
UmVmbGV4OjpUcmFpdDo6V2F0Y2hlZCcgXSwKICAgIGJ1aWxkZXIgPT4gJ19idWlsZF9hbGFybScs
CiAgICBsYXp5ICAgID0+IDEsCiAgICBoYW5kbGVzID0+IHsKICAgICAgICByZXNldF9hbGFybSA9
PiAncmVzZXQnLAogICAgfSwKKTsKCnN1YiBfYnVpbGRfYWxhcm0gewogICAgbXkgKCRzZWxmKSA9
IHNoaWZ0OwogICAgUmVmbGV4OjpXYWtldXAtPm5ldyh7CiAgICAgICAgd2hlbiA9PiAkc2VsZi0+
cnVuX29uLAogICAgfSk7Cn0KCnN1YiBCVUlMRCB7CiAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAg
JHNlbGYtPnJ1bl9vbiggdGltZSArICRzZWxmLT5pbnRlcnZhbCApCiAgICAgICAgdW5sZXNzICRz
ZWxmLT5ydW5fb247CiAgICBzYXkgIk9iamVjdCAiLCAkc2VsZi0+bmFtZSwgIiBpcyBkdWUgb24g
IiwgJHNlbGYtPnJ1bl9vbiwgIiAoIiwgJHNlbGYtPnJ1bl9vbiAtIHRpbWUsICJzIGZyb20gbm93
KSI7CiAgICAjIEJ1aWxkIGFsYXJtCiAgICAkc2VsZi0+YWxhcm07Cn0KCnN1YiBvbl9hbGFybV90
aW1lIHsKICAgIHNheSAiT05fQUxBUk1fVElNRSEiOwogICAgbXkgJHNlbGYgPSBzaGlmdDsKICAg
IHNheSAiICBPYmplY3QgIiwgJHNlbGYtPm5hbWUsICIgcnVubmluZyBvbjogIiwgJHNlbGYtPl9s
YXN0X3J1biggdGltZSApLCAiIChleHBlY3RlZDogIiwgJHNlbGYtPnJ1bl9vbiwgIiksICI7Cgog
ICAgIyBTY2hlZHVsZSBuZXh0CiAgICBzYXkgIiAgICBPYmplY3QgIiwgJHNlbGYtPm5hbWUsICIg
d2lsbCBiZSBkdWUgb24gIiwgJHNlbGYtPnJ1bl9vbiggJHNlbGYtPl9sYXN0X3J1biArICRzZWxm
LT5pbnRlcnZhbCApLCAiICgiLCAkc2VsZi0+cnVuX29uIC0gdGltZSwgInMgZnJvbSBub3cpIjsK
ICAgICRzZWxmLT5yZXNldF9hbGFybSh7IHdoZW4gPT4gJHNlbGYtPnJ1bl9vbiB9KTsKfQoKX19Q
QUNLQUdFX18tPm1ldGEtPm1ha2VfaW1tdXRhYmxlOwoKCnBhY2thZ2UgbWFpbjsKCm15IEBvYmpz
OwoKZm9yIChxd3tKb2huIEpvZSBKYW1lcyBKYWNrIEpha2V9KSB7CiAgICBwdXNoIEBvYmpzLCBU
aW1lZDo6T2JqZWN0LT5uZXcoCiAgICAgICAgbmFtZSAgICAgPT4gJF8sCiAgICAgICAgaW50ZXJ2
YWwgPT4gaW50KCByYW5kKCkgKiAxMCApICsgMSwKICAgICk7Cn0KClJlZmxleC0+cnVuX2FsbDsK
Cl9fRU5EX18KCk91dHB1dHM6CgpPYmplY3QgSm9obiBpcyBkdWUgb24gMTM5NzAzMTQyOSAoN3Mg
ZnJvbSBub3cpCk9iamVjdCBKb2UgaXMgZHVlIG9uIDEzOTcwMzE0MjUgKDNzIGZyb20gbm93KQpP
YmplY3QgSmFtZXMgaXMgZHVlIG9uIDEzOTcwMzE0MjcgKDVzIGZyb20gbm93KQpPYmplY3QgSmFj
ayBpcyBkdWUgb24gMTM5NzAzMTQyNCAoMnMgZnJvbSBub3cpCk9iamVjdCBKYWtlIGlzIGR1ZSBv
biAxMzk3MDMxNDI3ICg1cyBmcm9tIG5vdykKT05fQUxBUk1fVElNRSEKICBPYmplY3QgSmFjayBy
dW5uaW5nIG9uOiAxMzk3MDMxNDI0IChleHBlY3RlZDogMTM5NzAzMTQyNCksIAogICAgT2JqZWN0
IEphY2sgd2lsbCBiZSBkdWUgb24gMTM5NzAzMTQyNiAoMnMgZnJvbSBub3cpCk9OX0FMQVJNX1RJ
TUUhCiAgT2JqZWN0IEpvZSBydW5uaW5nIG9uOiAxMzk3MDMxNDI1IChleHBlY3RlZDogMTM5NzAz
MTQyNSksIAogICAgT2JqZWN0IEpvZSB3aWxsIGJlIGR1ZSBvbiAxMzk3MDMxNDI4ICgzcyBmcm9t
IG5vdykKT05fQUxBUk1fVElNRSEKICBPYmplY3QgSmFtZXMgcnVubmluZyBvbjogMTM5NzAzMTQy
NyAoZXhwZWN0ZWQ6IDEzOTcwMzE0MjcpLCAKICAgIE9iamVjdCBKYW1lcyB3aWxsIGJlIGR1ZSBv
biAxMzk3MDMxNDMyICg1cyBmcm9tIG5vdykKT05fQUxBUk1fVElNRSEKICBPYmplY3QgSmFrZSBy
dW5uaW5nIG9uOiAxMzk3MDMxNDI3IChleHBlY3RlZDogMTM5NzAzMTQyNyksIAogICAgT2JqZWN0
IEpha2Ugd2lsbCBiZSBkdWUgb24gMTM5NzAzMTQzMiAoNXMgZnJvbSBub3cpCk9OX0FMQVJNX1RJ
TUUhCiAgT2JqZWN0IEpvaG4gcnVubmluZyBvbjogMTM5NzAzMTQyOSAoZXhwZWN0ZWQ6IDEzOTcw
MzE0MjkpLCAKICAgIE9iamVjdCBKb2huIHdpbGwgYmUgZHVlIG9uIDEzOTcwMzE0MzYgKDdzIGZy
b20gbm93KQo=
--001a11c35080d78ed804f69d30bc--