A scheduler with Reflex::Wakeup
Giacomo Montagner <[email protected]> Wed, 9 Apr 2014 16:48:16 +0200
| Newsgroups | gmane.comp.lang.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'= 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--