Re: Better RecursiveTask Example

Remi Forax via Concurrency-interest <[email protected]> Wed, 24 Nov 2021 22:11:58 +0100 (CET)
Newsgroups gmane.comp.java.jsr.166-concurrency
Message-ID <[email protected]>
CgotLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tCj4gRnJvbTogImNvbmN1cnJlbmN5LWludGVy
ZXN0IiA8Y29uY3VycmVuY3ktaW50ZXJlc3RAY3Mub3N3ZWdvLmVkdT4KPiBUbzogImNvbmN1cnJl
bmN5LWludGVyZXN0IiA8Y29uY3VycmVuY3ktaW50ZXJlc3RAY3Mub3N3ZWdvLmVkdT4KPiBTZW50
OiBNZXJjcmVkaSAyNCBOb3ZlbWJyZSAyMDIxIDIxOjM2OjM2Cj4gU3ViamVjdDogUmU6IFtjb25j
dXJyZW5jeS1pbnRlcmVzdF0gQmV0dGVyIFJlY3Vyc2l2ZVRhc2sgRXhhbXBsZQoKPiBPbiAxMS8y
NC8yMSAyOjE1IFBNLCBEciBIZWlueiBNLiBLYWJ1dHogdmlhIENvbmN1cnJlbmN5LWludGVyZXN0
IHdyb3RlOgo+PiBFdmVyeSB0aW1lIEkgc2VlIHRoZSBleGFtcGxlIGluIFJlY3Vyc2l2ZVRhc2sg
SSBoYXZlIHRvIGNyaW5nZToKPiAKPiBUaGUgaW5pdGlhbCByYXRpb25hbGUgd2FzIHRoYXQgIm5l
YXJseSBldmVyeW9uZSIga25vd3MgRmlib25hY2NpIHNvIGl0Cj4gZG9lc24ndCBuZWVkIG11Y2gg
ZXhwbGFuYXRpb24gaXQuIGJ1dCB5b3UgYXJlIHJpZ2h0IHRoYXQgZXZlbiBtb3JlCj4gcGVvcGxl
IGtub3cgZmFjdG9yaWFsLCBhbmQgdGhlIEJpZ0ludGVnZXIgdmVyc2lvbiBmaXRzIFJlY3Vyc2l2
ZVRhc2sKPiB3aXRob3V0IG5lZWRpbmcgY2F2ZWF0cywgc28gd2Ugc2hvdWxkIHVzZSBpdDsgdGhh
bmtzLiBIZXJlJ3MgYSBqYXZhZG9jJ2QKPiB2ZXJzaW9uIG9mIHlvdXIgZXhhbXBsZS4gQW55IG9i
amVjdGlvbnMgdG8gdXNpbmcgaXQ/Cj4gCj4gCj4gwqAqCj4gwqAqIDxwcmU+IHtAY29kZQo+IMKg
KiBwdWJsaWMgY2xhc3MgRmFjdG9yaWFsVGFzayBleHRlbmRzIFJlY3Vyc2l2ZVRhc2s8QmlnSW50
ZWdlcj4gewo+IMKgKsKgwqAgcHJpdmF0ZSBmaW5hbCBpbnQgZnJvbSwgdG87Cj4gwqAqwqDCoCBw
dWJsaWMgRmFjdG9yaWFsVGFzayhpbnQgbikgeyB0aGlzKDAsIG4pOyB9Cj4gwqAqwqDCoCBwcml2
YXRlIEZhY3RvcmlhbFRhc2soaW50IGZyb20sIGludCB0bykgeyB0aGlzLmZyb20gPSBmcm9tOwo+
IHRoaXMudG8gPSB0bzsgfQo+IMKgKsKgwqAgcHJvdGVjdGVkIEJpZ0ludGVnZXIgY29tcHV0ZSgp
IHsKPiDCoCrCoMKgwqDCoCBpZiAoZnJvbSA9PSB0bynCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIGJhc2UgY2FzZQo+IMKgKsKgwqDCoMKgwqDCoCByZXR1
cm4gKGZyb20gPT0gMCkgPyBCaWdJbnRlZ2VyLk9ORSA6IEJpZ0ludGVnZXIudmFsdWVPZihmcm9t
KTsKPiDCoCrCoMKgwqDCoCBpbnQgbWlkID0gKGZyb20gKyB0bykgPj4+IDE7wqDCoMKgwqDCoMKg
wqDCoMKgwqAgLy8gc3BsaXQgaW4gaGFsZgo+IMKgKsKgwqDCoMKgIEZhY3RvcmlhbFRhc2sgbGVm
dFRhc2sgPSAobmV3IEZhY3RvcmlhbFRhc2soZnJvbSwgbWlkKSkuZm9yaygpOwo+IMKgKsKgwqDC
oMKgIEZhY3RvcmlhbFRhc2sgcmlnaHRUYXNrID0gbmV3IEZhY3RvcmlhbFRhc2sobWlkICsgMSwg
dG8pOwo+IMKgKsKgwqDCoMKgIEJpZ0ludGVnZXIgcmlnaHQgPSByaWdodFRhc2suaW52b2tlKCk7
IC8vIHBlcmZvcm0gaGFsZiB0aGUgd29yawo+IGxvY2FsbHkKPiDCoCrCoMKgwqDCoCBCaWdJbnRl
Z2VyIGxlZnQgPSBsZWZ0VGFzay5qb2luKCk7Cj4gwqAqwqDCoMKgwqAgcmV0dXJuIGxlZnQubXVs
dGlwbHkocmlnaHQpOwo+IMKgKsKgwqAgfQo+IMKgKiB9fTwvcHJlPgo+IMKgKgoKU2FtZSB2ZXJz
aW9uLCB3aXRoIGNsYXNzaWNhbCBmb3JtYXR0aW5nIGFwcGxpZWQKCiAqCiAqIDxwcmU+IHtAY29k
ZQogKiBwdWJsaWMgY2xhc3MgRmFjdG9yaWFsVGFzayBleHRlbmRzIFJlY3Vyc2l2ZVRhc2s8Qmln
SW50ZWdlcj4gewogKiAgIHByaXZhdGUgZmluYWwgaW50IGZyb207CiAqICAgcHJpdmF0ZSBmaW5h
bCBpbnQgdG87CiAqCiAqICAgcHVibGljIEZhY3RvcmlhbFRhc2soaW50IG4pIHsKICogICAgIHRo
aXMoMCwgbik7CiAqICAgfQogKgogKiAgIHByaXZhdGUgRmFjdG9yaWFsVGFzayhpbnQgZnJvbSwg
aW50IHRvKSB7CiAqICAgICB0aGlzLmZyb20gPSBmcm9tOwogKiAgICAgdGhpcy50byA9IHRvOwog
KiAgIH0KICoKICogICBwcm90ZWN0ZWQgQmlnSW50ZWdlciBjb21wdXRlKCkgewogKiAgICAgaWYg
KGZyb20gPT0gdG8pIHsgICAgICAgICAgICAgICAgICAgICAgLy8gYmFzZSBjYXNlCiAqICAgICAg
IHJldHVybiAoZnJvbSA9PSAwKSA/IEJpZ0ludGVnZXIuT05FIDogQmlnSW50ZWdlci52YWx1ZU9m
KGZyb20pOwogKiAgICAgfQogKiAgICAgaW50IG1pZCA9IChmcm9tICsgdG8pID4+PiAxOyAgICAg
ICAgICAgLy8gc3BsaXQgaW4gaGFsZgogKiAgICAgRmFjdG9yaWFsVGFzayBsZWZ0VGFzayA9IG5l
dyBGYWN0b3JpYWxUYXNrKGZyb20sIG1pZCkuZm9yaygpOwogKiAgICAgRmFjdG9yaWFsVGFzayBy
aWdodFRhc2sgPSBuZXcgRmFjdG9yaWFsVGFzayhtaWQgKyAxLCB0byk7CiAqICAgICBCaWdJbnRl
Z2VyIHJpZ2h0ID0gcmlnaHRUYXNrLmludm9rZSgpOyAvLyBwZXJmb3JtIGhhbGYgdGhlIHdvcmsg
bG9jYWxseQogKiAgICAgQmlnSW50ZWdlciBsZWZ0ID0gbGVmdFRhc2suam9pbigpOwogKiAgICAg
cmV0dXJuIGxlZnQubXVsdGlwbHkocmlnaHQpOwogKiAgIH0KICogfTwvcHJlPgogKgoKV2UgY2Fu
IGFsc28gdXNlICd2YXInLCBldmVyeSBkZWNsYXJhdGlvbnMgYXJlIGFsaWduZWQgYnV0IGl0IGlz
IHBlcmhhcHMgaGFyZGVyIHRvIHVuZGVyc3RhbmQKCiAqICAgcHJvdGVjdGVkIEJpZ0ludGVnZXIg
Y29tcHV0ZSgpIHsKICogICAgIGlmIChmcm9tID09IHRvKSB7ICAgICAgICAgICAgICAgLy8gYmFz
ZSBjYXNlCiAqICAgICAgIHJldHVybiAoZnJvbSA9PSAwKSA/IEJpZ0ludGVnZXIuT05FIDogQmln
SW50ZWdlci52YWx1ZU9mKGZyb20pOwogKiAgICAgfQogKiAgICAgdmFyIG1pZCA9IChmcm9tICsg
dG8pID4+PiAxOyAgICAvLyBzcGxpdCBpbiBoYWxmCiAqICAgICB2YXIgbGVmdFRhc2sgPSBuZXcg
RmFjdG9yaWFsVGFzayhmcm9tLCBtaWQpLmZvcmsoKTsKICogICAgIHZhciByaWdodFRhc2sgPSBu
ZXcgRmFjdG9yaWFsVGFzayhtaWQgKyAxLCB0byk7CiAqICAgICB2YXIgcmlnaHQgPSByaWdodFRh
c2suaW52b2tlKCk7IC8vIHBlcmZvcm0gaGFsZiB0aGUgd29yayBsb2NhbGx5CiAqICAgICB2YXIg
bGVmdCA9IGxlZnRUYXNrLmpvaW4oKTsKICogICAgIHJldHVybiBsZWZ0Lm11bHRpcGx5KHJpZ2h0
KTsKICogICB9CgoKUsOpbWkKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkNvbmN1cnJlbmN5LWludGVyZXN0IG1haWxpbmcgbGlzdApDb25jdXJyZW5jeS1p
bnRlcmVzdEBjcy5vc3dlZ28uZWR1Cmh0dHA6Ly9jcy5vc3dlZ28uZWR1L21haWxtYW4vbGlzdGlu
Zm8vY29uY3VycmVuY3ktaW50ZXJlc3QK