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