Re: RFR: 8284161: Implementation of Virtual Threads (Preview) [v5]

2022-04-27 Thread Ron Pressler
On Mon, 25 Apr 2022 20:48:54 GMT, Lance Andersen  wrote:

>> Alan Bateman has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Refresh
>
> test/jdk/jdk/internal/vm/Continuation/Basic.java line 327:
> 
>> 325: 
>> 326: // @Test
>> 327: public void testPinnedNative() {
> 
> Are you disabling this test?  if so, you can do `@Test(enabled=false)`

I updated the test and enabled it.

-

PR: https://git.openjdk.java.net/jdk/pull/8166


Re: RFR: 8284161: Implementation of Virtual Threads (Preview) [v5]

2022-04-25 Thread Lance Andersen
On Thu, 21 Apr 2022 11:35:57 GMT, Alan Bateman  wrote:

>> This is the implementation of JEP 425: Virtual Threads (Preview); TBD which 
>> JDK version to target.
>> 
>> We will refresh this PR periodically to pick up changes and fixes from the 
>> loom repo.
>> 
>> Most of the new mechanisms in the HotSpot VM are disabled by default and 
>> require running with `--enable-preview` to enable.
>> 
>> The patch has support for x64 and aarch64 on the usual operating systems 
>> (Linux, macOS, and Windows). There are stubs (calling Unimplemented) for 
>> zero and some of the other ports. Additional ports can be contributed via 
>> PRs against the fibers branch in the loom repo.
>> 
>> There are changes in many areas. To reduce notifications/mails, the labels 
>> have been trimmed down for now to hotspot, serviceability and core-libs. 
>> We'll add the complete set of labels when the PR is further along.
>> 
>> The changes include a refresh of java.util.concurrent and ForkJoinPool from 
>> Doug Lea's CVS. These changes will probably be proposed and integrated in 
>> advance of this PR.
>> 
>> The changes include some non-exposed and low-level infrastructure to support 
>> the (in draft) JEPs for Structured Concurrency and Scope Locals. This is to 
>> make life a bit easier and avoid having to separate VM changes and juggle 
>> branches at this time.
>
> Alan Bateman has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Refresh

test/jdk/jdk/internal/vm/Continuation/Basic.java line 327:

> 325: 
> 326: // @Test
> 327: public void testPinnedNative() {

Are you disabling this test?  if so, you can do `@Test(enabled=false)`

-

PR: https://git.openjdk.java.net/jdk/pull/8166


Re: RFR: 8284161: Implementation of Virtual Threads (Preview) [v5]

2022-04-25 Thread Alan Bateman
On Fri, 22 Apr 2022 02:26:50 GMT, ExE Boss  wrote:

>> Alan Bateman has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Refresh
>
> src/java.base/share/classes/java/lang/ThreadLocal.java line 179:
> 
>> 177: private T get(Thread t) {
>> 178: ThreadLocalMap map = getMap(t);
>> 179: if (map != null && map != ThreadLocalMap.NOT_SUPPORTED) {
> 
> Due to the way `setInitialValue` is implemented, `getMap(t)` will currently 
> be called twice when `ThreadLocal`s are disabled.
> 
> 
> 
> This method should probably be changed so that when `map == 
> ThreadLocalMap.NOT_SUPPORTED`, it simply does:
> 
> return initialValue();
> 
> 
> 
> 
> Suggestion:
> 
> if (map != null) {
> if (map == ThreadLocalMap.NOT_SUPPORTED) {
> return initialValue();
> }

It's benign but what you suggest may be clearer - thanks!

> src/java.base/share/classes/java/lang/ThreadLocal.java line 423:
> 
>> 421:  * Construct a new map without a table.
>> 422:  */
>> 423: ThreadLocalMap() {
> 
> It might be possible for this to be `private`:
> Suggestion:
> 
> private ThreadLocalMap() {

Yes, this can be private.

-

PR: https://git.openjdk.java.net/jdk/pull/8166


Re: RFR: 8284161: Implementation of Virtual Threads (Preview) [v5]

2022-04-21 Thread ExE Boss
On Thu, 21 Apr 2022 11:35:57 GMT, Alan Bateman  wrote:

>> This is the implementation of JEP 425: Virtual Threads (Preview); TBD which 
>> JDK version to target.
>> 
>> We will refresh this PR periodically to pick up changes and fixes from the 
>> loom repo.
>> 
>> Most of the new mechanisms in the HotSpot VM are disabled by default and 
>> require running with `--enable-preview` to enable.
>> 
>> The patch has support for x64 and aarch64 on the usual operating systems 
>> (Linux, macOS, and Windows). There are stubs (calling Unimplemented) for 
>> zero and some of the other ports. Additional ports can be contributed via 
>> PRs against the fibers branch in the loom repo.
>> 
>> There are changes in many areas. To reduce notifications/mails, the labels 
>> have been trimmed down for now to hotspot, serviceability and core-libs. 
>> We'll add the complete set of labels when the PR is further along.
>> 
>> The changes include a refresh of java.util.concurrent and ForkJoinPool from 
>> Doug Lea's CVS. These changes will probably be proposed and integrated in 
>> advance of this PR.
>> 
>> The changes include some non-exposed and low-level infrastructure to support 
>> the (in draft) JEPs for Structured Concurrency and Scope Locals. This is to 
>> make life a bit easier and avoid having to separate VM changes and juggle 
>> branches at this time.
>
> Alan Bateman has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Refresh

src/java.base/share/classes/java/lang/ThreadLocal.java line 179:

> 177: private T get(Thread t) {
> 178: ThreadLocalMap map = getMap(t);
> 179: if (map != null && map != ThreadLocalMap.NOT_SUPPORTED) {

Due to the way `setInitialValue` is implemented, `getMap(t)` will currently be 
called twice when `ThreadLocal`s are disabled.



This method should probably be changed so that when `map == 
ThreadLocalMap.NOT_SUPPORTED`, it simply does:

return initialValue();




Suggestion:

if (map != null) {
if (map == ThreadLocalMap.NOT_SUPPORTED) {
return initialValue();
}

src/java.base/share/classes/java/lang/ThreadLocal.java line 423:

> 421:  * Construct a new map without a table.
> 422:  */
> 423: ThreadLocalMap() {

It might be possible for this to be `private`:
Suggestion:

private ThreadLocalMap() {

-

PR: https://git.openjdk.java.net/jdk/pull/8166


Re: RFR: 8284161: Implementation of Virtual Threads (Preview) [v5]

2022-04-21 Thread Alan Bateman
> This is the implementation of JEP 425: Virtual Threads (Preview); TBD which 
> JDK version to target.
> 
> We will refresh this PR periodically to pick up changes and fixes from the 
> loom repo.
> 
> Most of the new mechanisms in the HotSpot VM are disabled by default and 
> require running with `--enable-preview` to enable.
> 
> The patch has support for x64 and aarch64 on the usual operating systems 
> (Linux, macOS, and Windows). There are stubs (calling Unimplemented) for zero 
> and some of the other ports. Additional ports can be contributed via PRs 
> against the fibers branch in the loom repo.
> 
> There are changes in many areas. To reduce notifications/mails, the labels 
> have been trimmed down for now to hotspot, serviceability and core-libs. 
> We'll add the complete set of labels when the PR is further along.
> 
> The changes include a refresh of java.util.concurrent and ForkJoinPool from 
> Doug Lea's CVS. These changes will probably be proposed and integrated in 
> advance of this PR.
> 
> The changes include some non-exposed and low-level infrastructure to support 
> the (in draft) JEPs for Structured Concurrency and Scope Locals. This is to 
> make life a bit easier and avoid having to separate VM changes and juggle 
> branches at this time.

Alan Bateman has updated the pull request incrementally with one additional 
commit since the last revision:

  Refresh

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/8166/files
  - new: https://git.openjdk.java.net/jdk/pull/8166/files/ff1ef712..5e202eca

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=8166&range=04
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=8166&range=03-04

  Stats: 1827 lines in 289 files changed: 682 ins; 377 del; 768 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8166.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8166/head:pull/8166

PR: https://git.openjdk.java.net/jdk/pull/8166