- A Cookbook Topic: "Delay", "WaitUntil" and "Let'sseeactions"

From: [at]} <Jürgen>
Date: Fri, 12 May 2006 21:58:22 +0200

----boundary-LibPST-iamunique-1059749906_-_-
Content-type: text/plain

Marco Ciot schrieb:

>O.k.
>If you look at it that way, yes, then the system will be blocked against
>user interaction.
>BUT: the background processing will be done, i.e. all registered actions
>will execute their Do method as requested by them through Services.DoLater.
>
>According to me it doesn't matter that the system freezes during such a call
>to Wait.Time.
>
>To be honest such a function to me appears to be the most contradicting one
>with respect to multi tasking.
>As I understood, Helmut wanted to use it to easily port old Oberon software.
>
>Just think of the fact that ONLY one task of all tasks in a multitasking
>system will ever be able to execute Wait.Time, and this task will always be
>the interactive task in BB.
>All other tasks, i.e. the background tasks will simply use the DoLater
>function, which does nothing else but wait the desired time.
>
>NOW, if anybody wanted to have such a Wait.Time function to be useful for
>background tasks, then he had to really implement threads instead of actions
>in BB.
>Note that a thread always needs to have its separated program stack.
>In other words, that would be a bigger thing and I believe it contradicts
>the philosophy of cooperating multitasking.
>
>I'm convinced that everything can be implemented using actions and the
>result code will even be more efficient, more readable AND especially more
>ROBUST within a framework like the one of BB.
>
>Marco Ciot
>
>
>-----Original Message-----
>From: blackbox{([at]})nowhere.xy
>G. Danforth
>Sent: Friday, May 12, 2006 19:52
>To: BlackBox Mailing List
>Subject: [BlackBox] - A Cookbook Topic: "Delay", "WaitUntil" and
>"Let'ssee actions"
>
>
>Marco,
>If the following is what you meant then it doesn't work for me. The
>cursor remains as the pointing hand
>when the commandor is clicked and no actions can be initiated during the
>wait time. So what did you
>really mean?
>-Doug
>-----------------
>MODULE Wait;
> IMPORT Services, Out:=StdLog;
>
> PROCEDURE Time (ms: INTEGER);
> VAR time: LONGINT;
> BEGIN
> time := Services.Ticks() + ms;
> WHILE Services.Ticks() < time DO
> Services.actionHook.Step
> END
> END Time;
>
> PROCEDURE Test*;
> BEGIN
> Out.String("start..");
> Time(10000);
> Out.String("stop.");
> Out.Ln;
> END Test;
>
>END Wait.
>
>--------------------
>Marco Ciot wrote:
>
>
>>Hello Helmut
>>
>>Sorry for not contributing earlier to this subject.
>>I quickly read the follow ups and didn't really see a reason why to do

>>
>>
>such
>
>
>>fuzzy things... sorry folks :)
>>
>>The solution to this indeed is to call Services.actionHook.Step during a
>>timed loop.
>>This procedure exactly does the stepping of the background tasks
>>(Services.Actions) and works fine while being called on command level

>>
>>
>also.
>
>
>>(It should not be called by Actions, however!)
>>(Well, let me also clarify that this is my understanding of the module
>>Services and not a documented feature.)
>>
>>How come you didn't try this yourself after having suggested it in

>>
>>
>xyBoss3?
>
>
>>Note that by adding such a call in HostPorts.Input followed by a

>>
>>
>conditional
>
>
>>Kernel.Sleep and having Services.actionHook.Step a little bit more robust

>>towards calls from anywhere (even Actions) any BB system becomes much more
>>responsive and won't do any excess CPU heating while tracking the mouse,
>>e.g. making a text selection ;)
>>
>>Regards
>>Marco Ciot
>>
>>
>>
>>
>
>--- BlackBox
>--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy
>
>--- BlackBox
>--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy
>
>
>
Hey All,
shouldn't we install a BlackboxWiki?

Cheers
Jrgen

--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy



----boundary-LibPST-iamunique-1059749906_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzc1xmY2hhcnNldDAgQXJpYWw7fQ0Ke1xmMVxmbW9kZXJuIENvdXJpZXIgTmV3O30NCntcZjJc
Zm5pbFxmY2hhcnNldDIgU3ltYm9sO30NCntcZjNcZm1vZGVyblxmY2hhcnNldDAgQ291cmllciBO
ZXc7fX0NCntcY29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7
fQ0KXHVjMVxwYXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyMCBNYXJjbyBDaW90IHNjaHJpZWI6
XHBhcg0KXHBhcg0KPk8uay5ccGFyDQo+SWYgeW91IGxvb2sgYXQgaXQgdGhhdCB3YXksIHllcywg
dGhlbiB0aGUgc3lzdGVtIHdpbGwgYmUgYmxvY2tlZCBhZ2FpbnN0XHBhcg0KPnVzZXIgaW50ZXJh
Y3Rpb24uXHBhcg0KPkJVVDogdGhlIGJhY2tncm91bmQgcHJvY2Vzc2luZyB3aWxsIGJlIGRvbmUs
IGkuZS4gYWxsIHJlZ2lzdGVyZWQgYWN0aW9uc1xwYXINCj53aWxsIGV4ZWN1dGUgdGhlaXIgRG8g
bWV0aG9kIGFzIHJlcXVlc3RlZCBieSB0aGVtIHRocm91Z2ggU2VydmljZXMuRG9MYXRlci5ccGFy
DQo+XHBhcg0KPkFjY29yZGluZyB0byBtZSBpdCBkb2Vzbid0IG1hdHRlciB0aGF0IHRoZSBzeXN0
ZW0gZnJlZXplcyBkdXJpbmcgc3VjaCBhIGNhbGxccGFyDQo+dG8gV2FpdC5UaW1lLlxwYXINCj5c
cGFyDQo+VG8gYmUgaG9uZXN0IHN1Y2ggYSBmdW5jdGlvbiB0byBtZSBhcHBlYXJzIHRvIGJlIHRo
ZSBtb3N0IGNvbnRyYWRpY3Rpbmcgb25lXHBhcg0KPndpdGggcmVzcGVjdCB0byBtdWx0aSB0YXNr
aW5nLlxwYXINCj5BcyBJIHVuZGVyc3Rvb2QsIEhlbG11dCB3YW50ZWQgdG8gdXNlIGl0IHRvIGVh
c2lseSBwb3J0IG9sZCBPYmVyb24gc29mdHdhcmUuXHBhcg0KPlxwYXINCj5KdXN0IHRoaW5rIG9m
IHRoZSBmYWN0IHRoYXQgT05MWSBvbmUgdGFzayBvZiBhbGwgdGFza3MgaW4gYSBtdWx0aXRhc2tp
bmdccGFyDQo+c3lzdGVtIHdpbGwgZXZlciBiZSBhYmxlIHRvIGV4ZWN1dGUgV2FpdC5UaW1lLCBh
bmQgdGhpcyB0YXNrIHdpbGwgYWx3YXlzIGJlXHBhcg0KPnRoZSBpbnRlcmFjdGl2ZSB0YXNrIGlu
IEJCLlxwYXINCj5BbGwgb3RoZXIgdGFza3MsIGkuZS4gdGhlIGJhY2tncm91bmQgdGFza3Mgd2ls
bCBzaW1wbHkgdXNlIHRoZSBEb0xhdGVyXHBhcg0KPmZ1bmN0aW9uLCB3aGljaCBkb2VzIG5vdGhp
bmcgZWxzZSBidXQgd2FpdCB0aGUgZGVzaXJlZCB0aW1lLlxwYXINCj5ccGFyDQo+Tk9XLCBpZiBh
bnlib2R5IHdhbnRlZCB0byBoYXZlIHN1Y2ggYSBXYWl0LlRpbWUgZnVuY3Rpb24gdG8gYmUgdXNl
ZnVsIGZvclxwYXINCj5iYWNrZ3JvdW5kIHRhc2tzLCB0aGVuIGhlIGhhZCB0byByZWFsbHkgaW1w
bGVtZW50IHRocmVhZHMgaW5zdGVhZCBvZiBhY3Rpb25zXHBhcg0KPmluIEJCLlxwYXINCj5Ob3Rl
IHRoYXQgYSB0aHJlYWQgYWx3YXlzIG5lZWRzIHRvIGhhdmUgaXRzIHNlcGFyYXRlZCBwcm9ncmFt
IHN0YWNrLlxwYXINCj5JbiBvdGhlciB3b3JkcywgdGhhdCB3b3VsZCBiZSBhIGJpZ2dlciB0aGlu
ZyBhbmQgSSBiZWxpZXZlIGl0IGNvbnRyYWRpY3RzXHBhcg0KPnRoZSBwaGlsb3NvcGh5IG9mIGNv
b3BlcmF0aW5nIG11bHRpdGFza2luZy5ccGFyDQo+XHBhcg0KPkknbSBjb252aW5jZWQgdGhhdCBl
dmVyeXRoaW5nIGNhbiBiZSBpbXBsZW1lbnRlZCB1c2luZyBhY3Rpb25zIGFuZCB0aGVccGFyDQo+
cmVzdWx0IGNvZGUgd2lsbCBldmVuIGJlIG1vcmUgZWZmaWNpZW50LCBtb3JlIHJlYWRhYmxlIEFO
RCBlc3BlY2lhbGx5IG1vcmVccGFyDQo+Uk9CVVNUIHdpdGhpbiBhIGZyYW1ld29yayBsaWtlIHRo
ZSBvbmUgb2YgQkIuXHBhcg0KPlxwYXINCj5NYXJjbyBDaW90XHBhcg0KPlxwYXINCj5ccGFyDQo+
LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS1ccGFyDQo+RnJvbTogYmxhY2tib3hAb2Jlcm9uLmNo
IFttYWlsdG86YmxhY2tib3hAb2Jlcm9uLmNoXU9uIEJlaGFsZiBPZiBEb3VnbGFzXHBhcg0KPkcu
IERhbmZvcnRoXHBhcg0KPlNlbnQ6IEZyaWRheSwgTWF5IDEyLCAyMDA2IDE5OjUyXHBhcg0KPlRv
OiBCbGFja0JveCBNYWlsaW5nIExpc3RccGFyDQo+U3ViamVjdDogW0JsYWNrQm94XSAtIEEgQ29v
a2Jvb2sgVG9waWM6ICJEZWxheSIsICJXYWl0VW50aWwiIGFuZFxwYXINCj4iTGV0J3NzZWUgYWN0
aW9ucyJccGFyDQo+XHBhcg0KPlxwYXINCj5NYXJjbyxccGFyDQo+SWYgdGhlIGZvbGxvd2luZyBp
cyB3aGF0IHlvdSBtZWFudCB0aGVuIGl0IGRvZXNuJ3Qgd29yayBmb3IgbWUuICBUaGVccGFyDQo+
Y3Vyc29yIHJlbWFpbnMgYXMgdGhlIHBvaW50aW5nIGhhbmRccGFyDQo+d2hlbiB0aGUgY29tbWFu
ZG9yIGlzIGNsaWNrZWQgYW5kIG5vIGFjdGlvbnMgY2FuIGJlIGluaXRpYXRlZCBkdXJpbmcgdGhl
XHBhcg0KPndhaXQgdGltZS4gIFNvIHdoYXQgZGlkIHlvdVxwYXINCj5yZWFsbHkgbWVhbj9ccGFy
DQo+LURvdWdccGFyDQo+LS0tLS0tLS0tLS0tLS0tLS1ccGFyDQo+TU9EVUxFIFdhaXQ7XHBhcg0K
PiAgICBJTVBPUlQgU2VydmljZXMsIE91dDo9U3RkTG9nO1xwYXINCj5ccGFyDQo+ICAgIFBST0NF
RFVSRSBUaW1lIChtczogSU5URUdFUik7XHBhcg0KPiAgICAgICAgVkFSIHRpbWU6IExPTkdJTlQ7
XHBhcg0KPiAgICBCRUdJTlxwYXINCj4gICAgICAgIHRpbWUgOj0gU2VydmljZXMuVGlja3MoKSAr
IG1zO1xwYXINCj4gICAgICAgIFdISUxFIFNlcnZpY2VzLlRpY2tzKCkgPCB0aW1lIERPXHBhcg0K
PiAgICAgICAgICAgIFNlcnZpY2VzLmFjdGlvbkhvb2suU3RlcFxwYXINCj4gICAgICAgIEVORFxw
YXINCj4gICAgRU5EIFRpbWU7XHBhcg0KPlxwYXINCj4gICAgUFJPQ0VEVVJFIFRlc3QqO1xwYXIN
Cj4gICAgQkVHSU5ccGFyDQo+ICAgICAgICBPdXQuU3RyaW5nKCJzdGFydC4uIik7XHBhcg0KPiAg
ICAgICAgVGltZSgxMDAwMCk7XHBhcg0KPiAgICAgICAgT3V0LlN0cmluZygic3RvcC4iKTtccGFy
DQo+ICAgICAgICBPdXQuTG47XHBhcg0KPiAgICBFTkQgVGVzdDtccGFyDQo+XHBhcg0KPkVORCBX
YWl0LlxwYXINCj5ccGFyDQo+LS0tLS0tLS0tLS0tLS0tLS0tLS1ccGFyDQo+TWFyY28gQ2lvdCB3
cm90ZTpccGFyDQo+ICBccGFyDQo+XHBhcg0KPj5IZWxsbyBIZWxtdXRccGFyDQo+PlxwYXINCj4+
U29ycnkgZm9yIG5vdCBjb250cmlidXRpbmcgZWFybGllciB0byB0aGlzIHN1YmplY3QuXHBhcg0K
Pj5JIHF1aWNrbHkgcmVhZCB0aGUgZm9sbG93IHVwcyBhbmQgZGlkbid0IHJlYWxseSBzZWUgYSBy
ZWFzb24gd2h5IHRvIGRvXHBhcg0KPj4gICAgXHBhcg0KPj5ccGFyDQo+c3VjaFxwYXINCj4gIFxw
YXINCj5ccGFyDQo+PmZ1enp5IHRoaW5ncy4uLiBzb3JyeSBmb2xrcyA6KVxwYXINCj4+XHBhcg0K
Pj5UaGUgc29sdXRpb24gdG8gdGhpcyBpbmRlZWQgaXMgdG8gY2FsbCBTZXJ2aWNlcy5hY3Rpb25I
b29rLlN0ZXAgZHVyaW5nIGFccGFyDQo+PnRpbWVkIGxvb3AuXHBhcg0KPj5UaGlzIHByb2NlZHVy
ZSBleGFjdGx5IGRvZXMgdGhlIHN0ZXBwaW5nIG9mIHRoZSBiYWNrZ3JvdW5kIHRhc2tzXHBhcg0K
Pj4oU2VydmljZXMuQWN0aW9ucykgYW5kIHdvcmtzIGZpbmUgd2hpbGUgYmVpbmcgY2FsbGVkIG9u
IGNvbW1hbmQgbGV2ZWxccGFyDQo+PiAgICBccGFyDQo+PlxwYXINCj5hbHNvLlxwYXINCj4gIFxw
YXINCj5ccGFyDQo+PihJdCBzaG91bGQgbm90IGJlIGNhbGxlZCBieSBBY3Rpb25zLCBob3dldmVy
ISlccGFyDQo+PihXZWxsLCBsZXQgbWUgYWxzbyBjbGFyaWZ5IHRoYXQgdGhpcyBpcyBteSB1bmRl
cnN0YW5kaW5nIG9mIHRoZSBtb2R1bGVccGFyDQo+PlNlcnZpY2VzIGFuZCBub3QgYSBkb2N1bWVu
dGVkIGZlYXR1cmUuKVxwYXINCj4+XHBhcg0KPj5Ib3cgY29tZSB5b3UgZGlkbid0IHRyeSB0aGlz
IHlvdXJzZWxmIGFmdGVyIGhhdmluZyBzdWdnZXN0ZWQgaXQgaW5ccGFyDQo+PiAgICBccGFyDQo+
PlxwYXINCj54eUJvc3MzP1xwYXINCj4gIFxwYXINCj5ccGFyDQo+Pk5vdGUgdGhhdCBieSBhZGRp
bmcgc3VjaCBhIGNhbGwgaW4gSG9zdFBvcnRzLklucHV0IGZvbGxvd2VkIGJ5IGFccGFyDQo+PiAg
ICBccGFyDQo+PlxwYXINCj5jb25kaXRpb25hbFxwYXINCj4gIFxwYXINCj5ccGFyDQo+Pktlcm5l
bC5TbGVlcCBhbmQgaGF2aW5nIFNlcnZpY2VzLmFjdGlvbkhvb2suU3RlcCBhIGxpdHRsZSBiaXQg
bW9yZSByb2J1c3RccGFyDQo+PnRvd2FyZHMgY2FsbHMgZnJvbSBhbnl3aGVyZSAoZXZlbiBBY3Rp
b25zKSBhbnkgQkIgc3lzdGVtIGJlY29tZXMgbXVjaCBtb3JlXHBhcg0KPj5yZXNwb25zaXZlIGFu
ZCB3b24ndCBkbyBhbnkgZXhjZXNzIENQVSBoZWF0aW5nIHdoaWxlIHRyYWNraW5nIHRoZSBtb3Vz
ZSxccGFyDQo+PmUuZy4gbWFraW5nIGEgdGV4dCBzZWxlY3Rpb24gOylccGFyDQo+PlxwYXINCj4+
UmVnYXJkc1xwYXINCj4+TWFyY28gQ2lvdFxwYXINCj4+XHBhcg0KPj5ccGFyDQo+PiAgICBccGFy
DQo+PlxwYXINCj5ccGFyDQo+LS0tIEJsYWNrQm94XHBhcg0KPi0tLSBzZW5kIHN1YmplY3QgSEVM
UCBvciBVTlNVQlNDUklCRSB0byBibGFja2JveEBvYmVyb24uY2hccGFyDQo+XHBhcg0KPi0tLSBC
bGFja0JveFxwYXINCj4tLS0gc2VuZCBzdWJqZWN0IEhFTFAgb3IgVU5TVUJTQ1JJQkUgdG8gYmxh
Y2tib3hAb2Jlcm9uLmNoXHBhcg0KPlxwYXINCj4gIFxwYXINCj5ccGFyDQpIZXkgQWxsLFxwYXIN
CnNob3VsZG4ndCB3ZSBpbnN0YWxsIGEgQmxhY2tib3hXaWtpP1xwYXINClxwYXINCkNoZWVyc1xw
YXINCkpcJ2ZjcmdlblxwYXINClxwYXINCi0tLSBCbGFja0JveFxwYXINCi0tLSBzZW5kIHN1Ympl
Y3QgSEVMUCBvciBVTlNVQlNDUklCRSB0byBibGFja2JveEBvYmVyb24uY2hccGFyDQpccGFyDQp9



----boundary-LibPST-iamunique-1059749906_-_---
Received on Fri May 12 2006 - 21:58:22 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:01 UTC