You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/12/31 02:43:04 UTC

[groovy] branch master updated: Tweak parallel support in GINQ

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/master by this push:
     new eda90f6  Tweak parallel support in GINQ
eda90f6 is described below

commit eda90f6168151033737ceb18c34ae32c86c66bf2
Author: Daniel Sun <su...@apache.org>
AuthorDate: Thu Dec 31 10:42:44 2020 +0800

    Tweak parallel support in GINQ
---
 .../ginq/provider/collection/runtime/QueryableCollection.java     | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableCollection.java b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableCollection.java
index db2b5a5..60803cf 100644
--- a/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableCollection.java
+++ b/subprojects/groovy-ginq/src/main/groovy/org/apache/groovy/ginq/provider/collection/runtime/QueryableCollection.java
@@ -487,7 +487,7 @@ class QueryableCollection<T> implements Queryable<T>, Serializable {
                 sourceStream = toStream(sourceIterable);  // we have to create new stream every time because Java stream can not be reused
             }
 
-            if (!sourceStream.isParallel() && TRUE_STR.equals(QueryableHelper.getVar(PARALLEL))) {
+            if (!sourceStream.isParallel() && isParallel()) {
                 sourceStream = sourceStream.parallel();
             }
 
@@ -523,7 +523,11 @@ class QueryableCollection<T> implements Queryable<T>, Serializable {
     }
 
     private static <T> Stream<T> toStream(Iterable<T> sourceIterable) {
-        return StreamSupport.stream(sourceIterable.spliterator(), false);
+        return StreamSupport.stream(sourceIterable.spliterator(), isParallel());
+    }
+
+    private static boolean isParallel() {
+        return TRUE_STR.equals(QueryableHelper.getVar(PARALLEL));
     }
 
     private boolean isReusable() {