summaryrefslogtreecommitdiff
path: root/src/actors/scala
diff options
context:
space:
mode:
authorAntonio Cunei <antonio.cunei@epfl.ch>2009-12-16 16:07:30 +0000
committerAntonio Cunei <antonio.cunei@epfl.ch>2009-12-16 16:07:30 +0000
commit77c181c62a5edf52e7eca110d2f94c32997226fc (patch)
treefcdd97de4f61316ca5d1f20cbf761665567a08d6 /src/actors/scala
parentea4bf1b11e7d6bbc0fb7657e8b6262829d3bb19c (diff)
downloadscala-77c181c62a5edf52e7eca110d2f94c32997226fc.tar.gz
scala-77c181c62a5edf52e7eca110d2f94c32997226fc.tar.bz2
scala-77c181c62a5edf52e7eca110d2f94c32997226fc.zip
Merged revisions 19842,19844,19846,19848-19849,...
Merged revisions 19842,19844,19846,19848-19849,19854-19855,19858-19859,19861,19863-19865, 19867,19869,19871-19874,19888,19891-19897,19899-19901,19903-19905,19908- 19914,19916-19918,19925-19926,19935,19938-19939,19941,19945,19948-19950, 19952,19959,19963-19964,19970-19975,19982-19984,19986,19988-19989,19992- 19995,20003-20004,20006-20008,20010-20011,20014-20016,20021-20022,20028, 20036,20041-20042,20044-20045,20048,20050-20052,20056,20063-20064,20068, 20070-20076,20079-20080,20082,20085-20088,20092-20093,20095-20098,20104, 20107,20109-20110,20114,20124,20129,20133,20137-20140,20142-20143,20149 via svnmerge from https://lampsvn.epfl.ch/svn-repos/scala/scala/trunk ........ r19842 | extempore | 2009-11-24 19:59:58 +0100 (Tue, 24 Nov 2009) | 1 line Giant cleanup of the automata files. Fixes #1992. ........ r19844 | dubochet | 2009-11-24 20:27:10 +0100 (Tue, 24 Nov 2009) | 1 line Scaladoc 2. ........ r19846 | dubochet | 2009-11-24 20:57:32 +0100 (Tue, 24 Nov 2009) | 1 line Disabled docgenerator test, which isn't compatible with Scaladoc 2. ........ r19848 | extempore | 2009-11-24 21:10:50 +0100 (Tue, 24 Nov 2009) | 2 lines Some improvements to REPL completion. Package objects members are now visible. ........ r19849 | extempore | 2009-11-24 23:19:22 +0100 (Tue, 24 Nov 2009) | 1 line Fix for #2695 - do not generate forwarders for abstract methods. ........ r19854 | moors | 2009-11-25 10:20:26 +0100 (Wed, 25 Nov 2009) | 3 lines closed #2624: instantiate type params after eta expansion of polymorphic method does not blow the stack on pos/t0674 (previous private fix did typed(tree); instantiate(tree) instead of instantiate(typed(tree))) fixed check file for neg/bug608 -- got better error message ........ r19855 | cunei | 2009-11-25 11:07:56 +0100 (Wed, 25 Nov 2009) | 3 lines Removed OMake build files. They are outdated, and it is highly unlikely we'll ever find a maintainer. ........ r19858 | cunei | 2009-11-25 13:09:54 +0100 (Wed, 25 Nov 2009) | 2 lines updated README ........ r19859 | rytz | 2009-11-25 14:43:45 +0100 (Wed, 25 Nov 2009) | 1 line re-compiled msil.jar (scala.Math / scala.math business) ........ r19861 | moors | 2009-11-25 16:48:19 +0100 (Wed, 25 Nov 2009) | 1 line quick fix for #2673: relaxed zipped on Tuple2/Tuple3 (back to using A => B for constraint instead of A <%< B) ........ r19863 | extempore | 2009-11-25 17:34:54 +0100 (Wed, 25 Nov 2009) | 2 lines Added some logic to StringLike.format so that scala Numeric types can be used without a runtime error. ........ r19864 | extempore | 2009-11-25 17:41:47 +0100 (Wed, 25 Nov 2009) | 3 lines Updating deprecated usages in new scaladoc code. Used that as inspiration to chase down a few spots using get and getOrElse in suboptimal fashion. ........ r19865 | extempore | 2009-11-25 17:59:03 +0100 (Wed, 25 Nov 2009) | 1 line Missed including Predef.printf in r19863. Closes #2694. ........ r19867 | moors | 2009-11-25 18:05:08 +0100 (Wed, 25 Nov 2009) | 1 line closed #2485: failing assert on reference to Java protected methods from companion object ........ r19869 | extempore | 2009-11-25 19:16:49 +0100 (Wed, 25 Nov 2009) | 3 lines Working on scala.runtime. Removed RichString, which is now dead code and falling out of sync with StringLike. Made a method in MethodCache verifiably tail-recursive. ........ r19871 | extempore | 2009-11-25 19:50:55 +0100 (Wed, 25 Nov 2009) | 1 line Removing redundant scalap code. ........ r19872 | extempore | 2009-11-25 20:38:53 +0100 (Wed, 25 Nov 2009) | 4 lines Cleaning up in scala.runtime.*. Removing unused methods. Fixed toArray to copy more than one element into the new one. Added sameElements to Iterator to further simplify the case class support logic, and because it should be there anyway. ........ r19873 | dragos | 2009-11-25 20:42:33 +0100 (Wed, 25 Nov 2009) | 2 lines Updated Idea files to use relative paths towards locker when building quick ........ r19874 | dragos | 2009-11-25 20:42:35 +0100 (Wed, 25 Nov 2009) | 2 lines Fixed ticket 2464 ........ r19888 | extempore | 2009-11-25 23:26:10 +0100 (Wed, 25 Nov 2009) | 1 line Fix for #2704. ........ r19891 | odersky | 2009-11-26 13:03:24 +0100 (Thu, 26 Nov 2009) | 1 line Closed #2863 ........ r19892 | odersky | 2009-11-26 13:04:56 +0100 (Thu, 26 Nov 2009) | 1 line undeprecated containsSlice. renamed indexOfSeq, lastIndexOfSeq to ...Slice. ........ r19893 | plocinic | 2009-11-26 13:05:45 +0100 (Thu, 26 Nov 2009) | 1 line Closes #2562 ........ r19894 | rytz | 2009-11-26 13:25:49 +0100 (Thu, 26 Nov 2009) | 1 line improved fix for see #2489 ........ r19895 | dragos | 2009-11-26 14:26:25 +0100 (Thu, 26 Nov 2009) | 2 lines Fixed #1167. ........ r19896 | dragos | 2009-11-26 14:30:15 +0100 (Thu, 26 Nov 2009) | 2 lines Merge branch 'inner-class-attr' ........ r19897 | dubochet | 2009-11-26 15:13:15 +0100 (Thu, 26 Nov 2009) | 1 line Fixed some Scaladoc issues: dangerous characters in file names are encoded, each owner template is a link, type bounds are printed as "<:" and ">:". ........ r19899 | dragos | 2009-11-26 17:55:48 +0100 (Thu, 26 Nov 2009) | 2 lines Closed #2418 ........ r19900 | malayeri | 2009-11-26 17:56:02 +0100 (Thu, 26 Nov 2009) | 1 line Improved fix for #2552 ........ r19901 | dragos | 2009-11-26 17:59:47 +0100 (Thu, 26 Nov 2009) | 2 lines Fixed test cases to the new method names (indexOfSeq -> indexOfSlice). See r19892 ........ r19903 | extempore | 2009-11-26 23:09:33 +0100 (Thu, 26 Nov 2009) | 1 line Closes #2707. ........ r19904 | extempore | 2009-11-26 23:29:12 +0100 (Thu, 26 Nov 2009) | 2 lines Following up on my deprecated method overreach. Now I believe trunk contains all the deprecated methods it should. ........ r19905 | extempore | 2009-11-27 00:26:51 +0100 (Fri, 27 Nov 2009) | 1 line Unbreaking build. ........ r19908 | extempore | 2009-11-27 06:34:47 +0100 (Fri, 27 Nov 2009) | 1 line Fixed test I broke. Reminded self not to commit when in a hurry. ........ r19909 | odersky | 2009-11-27 11:00:44 +0100 (Fri, 27 Nov 2009) | 1 line Made Symbols.filter more robost. Hopefully this fixes the specs problem with RC2. ........ r19910 | moors | 2009-11-27 11:45:51 +0100 (Fri, 27 Nov 2009) | 1 line tests in pending for see #2705 -- note that partest does not work for jvm tests under pending, move to files and it works, see #2711 ........ r19911 | malayeri | 2009-11-27 12:05:04 +0100 (Fri, 27 Nov 2009) | 1 line Closes #2540 and closes #2593. ........ r19912 | extempore | 2009-11-27 14:28:45 +0100 (Fri, 27 Nov 2009) | 1 line Performance improvement on Ordering. Closes #2697. ........ r19913 | malayeri | 2009-11-27 14:36:37 +0100 (Fri, 27 Nov 2009) | 1 line Undo previous change to Typers; use filter if method withFilter is not available. ........ r19914 | dragos | 2009-11-27 15:49:41 +0100 (Fri, 27 Nov 2009) | 2 lines Fixed failing test in the optimised case ........ r19916 | extempore | 2009-11-27 18:29:55 +0100 (Fri, 27 Nov 2009) | 2 lines Removed method cached from MapLike - it's an exact duplicate of getOrElseUpdate. Closes #2715. ........ r19917 | dcaoyuan | 2009-11-27 20:42:52 +0100 (Fri, 27 Nov 2009) | 1 line Removed redundant code, let CompilerCommand processes all params ........ r19918 | dcaoyuan | 2009-11-27 22:15:24 +0100 (Fri, 27 Nov 2009) | 1 line Added -make option transitivenocp which won't check classpath, so some build tools such as maven can manage this by itself ........ r19925 | extempore | 2009-11-28 22:11:43 +0100 (Sat, 28 Nov 2009) | 4 lines Added a line to build.xml to echo the value of $ANT_OPTS after being burned one too many times by having it already set in my environment. What was the motivation for that change again? In any case this should make it easier to notice. ........ r19926 | extempore | 2009-11-28 23:18:12 +0100 (Sat, 28 Nov 2009) | 2 lines Fix for #2725 - configure the SAX parser not to freak out on an invalid doctype URL. ........ r19935 | odersky | 2009-11-30 13:48:55 +0100 (Mon, 30 Nov 2009) | 1 line Extensive documentation of TraversableLike in proposed new style. ........ r19938 | extempore | 2009-11-30 16:06:14 +0100 (Mon, 30 Nov 2009) | 4 lines Removed a deprecated method which snuck back into TraversableLike. "remove" had only ever been deprecated in List, so I moved it there so it didn't unnecessarily materialize as a deprecated method in every Traversable. ........ r19939 | extempore | 2009-11-30 16:14:11 +0100 (Mon, 30 Nov 2009) | 1 line Fix for #2736 (scanner not advancing on unicode identifier.) ........ r19941 | cunei | 2009-11-30 16:46:19 +0100 (Mon, 30 Nov 2009) | 2 lines closes #1904 ........ r19945 | dragos | 2009-11-30 17:42:35 +0100 (Mon, 30 Nov 2009) | 2 lines Closed #2726 and added test for #2464 (refs #2464) ........ r19948 | cunei | 2009-11-30 20:00:20 +0100 (Mon, 30 Nov 2009) | 2 lines (Temporarily) closes #2139 ........ r19949 | extempore | 2009-11-30 20:24:14 +0100 (Mon, 30 Nov 2009) | 1 line Fix and test case for #2721. ........ r19950 | extempore | 2009-12-01 01:03:54 +0100 (Tue, 01 Dec 2009) | 1 line Fix and test case for #2378. ........ r19952 | rytz | 2009-12-01 09:28:07 +0100 (Tue, 01 Dec 2009) | 1 line fix msil code generation for exception handlers. ........ r19959 | phaller | 2009-12-01 16:40:23 +0100 (Tue, 01 Dec 2009) | 1 line Added switch to not use fork-join pool on a 1.5 JVM. ........ r19963 | extempore | 2009-12-01 19:28:37 +0100 (Tue, 01 Dec 2009) | 3 lines Implement foreachEntry by calling iteratorEntries.foreach due to an edge-case. The comment in the method explains the issue in detail. ........ r19964 | extempore | 2009-12-01 19:28:55 +0100 (Tue, 01 Dec 2009) | 12 lines [This patch submitted by ismael juma - commit message his words, but condensed.] Fix ticket #1600: Serialization and deserialization of hash-based collections should not re-use hashCode. The collection is rebuilt on deserialization - note that this is not compatible with the previous serialization format. All @SerialVersionUIDs have been reset to 1. WeakHashMap is not Serializable and should not be so. TreeHashMap has not been reintegrated yet. OpenHashMap has not been updated. (I think this collection is flawed and should be removed or reimplemented.) ........ r19970 | extempore | 2009-12-02 02:01:45 +0100 (Wed, 02 Dec 2009) | 1 line Initialization order fix to ijuma's serialization patch. ........ r19971 | extempore | 2009-12-02 05:59:19 +0100 (Wed, 02 Dec 2009) | 3 lines Making the Try/Catch/Finally in ScalaRunTime to do what it looks like they were intended to do. (This code looks like it dates from the Nixon administration, so deleting it might be better.) ........ r19972 | extempore | 2009-12-02 05:59:33 +0100 (Wed, 02 Dec 2009) | 1 line A minor optimization to HashSet. ........ r19973 | extempore | 2009-12-02 05:59:54 +0100 (Wed, 02 Dec 2009) | 2 lines Built out genprod to create a tuple method for reach function alongside its curry method. Generated new FunctionNs. ........ r19974 | extempore | 2009-12-02 06:00:11 +0100 (Wed, 02 Dec 2009) | 1 line Some minor cleanups found while cleaning up. ........ r19975 | extempore | 2009-12-02 06:00:23 +0100 (Wed, 02 Dec 2009) | 2 lines Working around interesting initialization order issue revealed through use of @transient, serialization, and -Xcheckinit. ........ r19982 | rytz | 2009-12-02 17:08:53 +0100 (Wed, 02 Dec 2009) | 1 line moved forkjoin sources out of the library folder ........ r19983 | moors | 2009-12-02 17:12:14 +0100 (Wed, 02 Dec 2009) | 2 lines closes #2750: cooking java raw types in info of type parameters of Java classes review by: odersky ........ r19984 | rytz | 2009-12-02 17:20:48 +0100 (Wed, 02 Dec 2009) | 1 line another test for #2489 ........ r19986 | dubochet | 2009-12-02 18:31:28 +0100 (Wed, 02 Dec 2009) | 1 line [scaladoc] Types are links. Other changes include: renaming factory classes, better html output of members list, better CSS styling, collapsible packages (not final behaviour). ........ r19988 | phaller | 2009-12-02 23:09:29 +0100 (Wed, 02 Dec 2009) | 1 line Moved non-deterministic test for see #1801 to pending. ........ r19989 | extempore | 2009-12-02 23:43:09 +0100 (Wed, 02 Dec 2009) | 2 lines Implemented scala.runtime.AbstractFunction0-22. Knocks something over 500K off the size of the lib/compiler jars. ........ r19992 | phaller | 2009-12-03 12:26:58 +0100 (Thu, 03 Dec 2009) | 1 line Replaced RunnableFuture with placeholder interface. ForkJoinPool no longer inherits from AbstractExecutorService. ........ r19993 | phaller | 2009-12-03 13:03:16 +0100 (Thu, 03 Dec 2009) | 1 line Added Java property to explicitly enable/disable fork-join pool for actors. By default it is enabled only on 1.6 and 1.7 JDKs from Sun. ........ r19994 | rytz | 2009-12-03 13:35:35 +0100 (Thu, 03 Dec 2009) | 1 line re-compiled forkjoin ........ r19995 | phaller | 2009-12-03 15:49:39 +0100 (Thu, 03 Dec 2009) | 1 line Use the same thread pool configuration for DaemonScheduler. ........ r20003 | rytz | 2009-12-04 09:23:11 +0100 (Fri, 04 Dec 2009) | 1 line close #2708 ........ r20004 | rytz | 2009-12-04 09:40:29 +0100 (Fri, 04 Dec 2009) | 1 line oh, i mean 0 not O ........ r20006 | plocinic | 2009-12-04 15:34:04 +0100 (Fri, 04 Dec 2009) | 1 line Added new test, see #2754 ........ r20007 | plocinic | 2009-12-04 16:16:13 +0100 (Fri, 04 Dec 2009) | 1 line object's name should be Test instead of Main ........ r20008 | plocinic | 2009-12-04 17:45:48 +0100 (Fri, 04 Dec 2009) | 1 line .scala_dependencies now correctly tracks the class files (didn't work for example for case classes and more complicated object/class combinations). Refined build manager now compares different symbols not only by name but takes into consideration some flags. This way we avoid comparing for example class with companion object (both share the name but we should compare class with class). Changes class now correctly filters private, local and lifted symbols ('newMembers -= n' didn't eliminate correctly some of the cases). ........ r20010 | phaller | 2009-12-04 18:16:04 +0100 (Fri, 04 Dec 2009) | 1 line Made test jvm/t2515 more robust. ........ r20011 | ilyas | 2009-12-04 18:24:16 +0100 (Fri, 04 Dec 2009) | 1 line #2747 fixed ........ r20014 | dcaoyuan | 2009-12-05 08:21:25 +0100 (Sat, 05 Dec 2009) | 1 line Split command line parameters by space, properly process quoted parameter ........ r20015 | dcaoyuan | 2009-12-05 08:24:36 +0100 (Sat, 05 Dec 2009) | 1 line Don't add empty param ........ r20016 | dubochet | 2009-12-05 17:03:36 +0100 (Sat, 05 Dec 2009) | 1 line [scaladoc] Fixed crash with privately-owned public classes (fixes nightly build). ........ r20021 | extempore | 2009-12-06 22:35:45 +0100 (Sun, 06 Dec 2009) | 7 lines Making the repl-shell bridge nicer. Now you can do: scala> :sh find /Users/paulp -depth 1 -name '.scala*' stdout: List[String] = List(/Users/paulp/.scala_dependencies, /Users/paulp/.scala_history, ...) scala> stdout | "grep history" | "wc -c" res0: Seq[String] = List( 28) ........ r20022 | extempore | 2009-12-06 23:25:50 +0100 (Sun, 06 Dec 2009) | 4 lines Making it easier to explore the AST. Example: scala> :power scala> val t = mkTree("def bip(x: Float) = x.toInt") t: interpreter.compiler.Tree = def bip(x: Float) = x.toInt ........ r20028 | cunei | 2009-12-07 12:49:19 +0100 (Mon, 07 Dec 2009) | 1 line Updated copyright notices to 2010 ........ r20036 | odersky | 2009-12-07 17:39:35 +0100 (Mon, 07 Dec 2009) | 1 line Added lift method to PartialFunction ........ r20041 | ilyas | 2009-12-07 18:25:15 +0100 (Mon, 07 Dec 2009) | 1 line plugin example update to be compiled via scala 2.8 ........ r20042 | odersky | 2009-12-07 18:31:49 +0100 (Mon, 07 Dec 2009) | 1 line new doc comment generation, including some new style doc comments in collection classes. ........ r20044 | extempore | 2009-12-07 19:17:48 +0100 (Mon, 07 Dec 2009) | 1 line Re-deleted a method which snuck back in on the last commit. ........ r20045 | odersky | 2009-12-07 19:37:41 +0100 (Mon, 07 Dec 2009) | 1 line small changes to doc comment model ........ r20048 | extempore | 2009-12-08 03:57:59 +0100 (Tue, 08 Dec 2009) | 1 line Tweaking logic errors in broken docs build. ........ r20050 | rytz | 2009-12-08 11:16:16 +0100 (Tue, 08 Dec 2009) | 1 line make exception handlers catching faster. Review by dragos. ........ r20051 | plocinic | 2009-12-08 12:44:58 +0100 (Tue, 08 Dec 2009) | 1 line see #2708 ........ r20052 | cunei | 2009-12-08 14:37:08 +0100 (Tue, 08 Dec 2009) | 3 lines 2009 -> 2010 ........ r20056 | odersky | 2009-12-08 17:38:05 +0100 (Tue, 08 Dec 2009) | 1 line Closes #2772 ........ r20063 | rytz | 2009-12-09 11:51:06 +0100 (Wed, 09 Dec 2009) | 1 line moved t2515 to pending (fails on ibm6). no review ........ r20064 | malayeri | 2009-12-09 12:05:17 +0100 (Wed, 09 Dec 2009) | 1 line Improve error message for selection from a type parameter. Fixes #2702. ........ r20068 | dubochet | 2009-12-09 15:12:50 +0100 (Wed, 09 Dec 2009) | 1 line [scaladoc] Display of comments is improved. Short description (first sentence) is extracted and displayed by default. Full description, with parameters, etc. is displayed when clicking on the signature. Inheritance classes for every member are printed. Package-list search tool has better performance. ........ r20070 | extempore | 2009-12-09 17:26:02 +0100 (Wed, 09 Dec 2009) | 2 lines A minor identifier change in a method which is instantiated by name, to reduce proguard noise. ........ r20071 | extempore | 2009-12-09 18:03:48 +0100 (Wed, 09 Dec 2009) | 3 lines Took manifests a little closer to the finish line. Variance still doesn't work but the relationships between all the top, nearly top, and bottom types should all be all correct. (See lengthy test case.) ........ r20072 | extempore | 2009-12-09 18:04:08 +0100 (Wed, 09 Dec 2009) | 3 lines Removed productPrefix from case class hashCode consideration. (It is not used in equality and therefore should not be used in hashCode either.) ........ r20073 | extempore | 2009-12-09 18:04:19 +0100 (Wed, 09 Dec 2009) | 1 line Renamed AbstractFunction to AbstractFunction0 to keep ant happy. ........ r20074 | extempore | 2009-12-09 18:04:29 +0100 (Wed, 09 Dec 2009) | 1 line Warning suppression. ........ r20075 | plocinic | 2009-12-09 18:10:56 +0100 (Wed, 09 Dec 2009) | 1 line More informative error message. no review ........ r20076 | plocinic | 2009-12-09 18:18:44 +0100 (Wed, 09 Dec 2009) | 1 line typo ........ r20079 | extempore | 2009-12-09 19:06:20 +0100 (Wed, 09 Dec 2009) | 2 lines Gave all the manifest singletons a readResolve so they unserialize to themselves. ........ r20080 | milessabin | 2009-12-09 22:04:42 +0100 (Wed, 09 Dec 2009) | 1 line Fully export fjbg and msil from scala to scala-plugin to avoid obscure pickler issues when building the IDE incrementally. ........ r20082 | dubochet | 2009-12-09 23:05:21 +0100 (Wed, 09 Dec 2009) | 1 line [scaladoc] Known subclasses are printed. ........ r20085 | plocinic | 2009-12-10 15:42:46 +0100 (Thu, 10 Dec 2009) | 1 line Closes #2559 ........ r20086 | rytz | 2009-12-10 16:32:30 +0100 (Thu, 10 Dec 2009) | 1 line closes #2784 ........ r20087 | plocinic | 2009-12-10 17:05:04 +0100 (Thu, 10 Dec 2009) | 1 line Closes #2649 ........ r20088 | extempore | 2009-12-10 17:37:19 +0100 (Thu, 10 Dec 2009) | 1 line Small rewrite of r20087. ........ r20092 | odersky | 2009-12-10 18:00:59 +0100 (Thu, 10 Dec 2009) | 1 line refined doc comments generation; refactored code into new Chars, DocStrings classes in util. Added some more doc comments to collection classes. ........ r20093 | plocinic | 2009-12-10 18:08:17 +0100 (Thu, 10 Dec 2009) | 1 line cleanup ........ r20095 | extempore | 2009-12-10 18:44:54 +0100 (Thu, 10 Dec 2009) | 3 lines Remedying the fact that I swapped which version of List.fromString was to be deprecated and which was to be deleted, plus some better deprecation advice. ........ r20096 | extempore | 2009-12-10 18:45:05 +0100 (Thu, 10 Dec 2009) | 5 lines Modified partialMap to take PartialFunction[A, B] instead of Any => B. There was definitely some reason I didn't do this in the first place, but either that reason no longer applies or it's not easily induced. However please consider this change slightly tentative as I feel like that other shoe may still be out there and we might have to reconsider. ........ r20097 | extempore | 2009-12-10 18:45:17 +0100 (Thu, 10 Dec 2009) | 1 line Don't NPE on null hashtable entries. ........ r20098 | milessabin | 2009-12-10 20:39:45 +0100 (Thu, 10 Dec 2009) | 1 line Fixed #2616 and #2737. ........ r20104 | plocinic | 2009-12-11 11:55:08 +0100 (Fri, 11 Dec 2009) | 1 line Added test for #2794 ........ r20107 | rytz | 2009-12-11 15:57:35 +0100 (Fri, 11 Dec 2009) | 2 lines fixes #2610 and fixes #2687. "package objects" can now 'inherit from' classes / traits, and refer to members of other package objects. review by odersky. ........ r20109 | odersky | 2009-12-11 19:18:44 +0100 (Fri, 11 Dec 2009) | 1 line allowed $super variables in doc comment; some more documentation of collection classes. ........ r20110 | extempore | 2009-12-11 20:21:44 +0100 (Fri, 11 Dec 2009) | 1 line Tweaked plugin template not to reference /Users/luc. ........ r20114 | extempore | 2009-12-12 16:13:22 +0100 (Sat, 12 Dec 2009) | 4 lines Took advantage of package object fix to factor the duplicated code out of scala.Math and scala.math.`package`. This required a new starr which exposes inherited package object members (starr is based on r20110.) ........ r20124 | rytz | 2009-12-14 13:01:53 +0100 (Mon, 14 Dec 2009) | 1 line integration of java and scala deprecation ........ r20129 | odersky | 2009-12-14 18:12:17 +0100 (Mon, 14 Dec 2009) | 1 line lost of documentation and some small adjustments to collection classes. ........ r20133 | extempore | 2009-12-15 01:07:59 +0100 (Tue, 15 Dec 2009) | 1 line Another round of deprecation warning elimination. ........ r20137 | extempore | 2009-12-15 15:23:33 +0100 (Tue, 15 Dec 2009) | 1 line Eliminating the deprecation warnings in the actor library. ........ r20138 | moors | 2009-12-15 15:47:35 +0100 (Tue, 15 Dec 2009) | 2 lines closes #2778: need to refresh normalize cache when length of type parameters changes -- thanks to Jason Zaugg for the diagnosis review by odersky ........ r20139 | michelou | 2009-12-15 17:19:47 +0100 (Tue, 15 Dec 2009) | 2 lines corrected @usecase and imports in plugin example ........ r20140 | odersky | 2009-12-15 18:43:00 +0100 (Tue, 15 Dec 2009) | 1 line more docs. noreview. ........ r20142 | extempore | 2009-12-15 21:22:34 +0100 (Tue, 15 Dec 2009) | 3 lines Lots of work on repl completion. Many more cases handled correctly, much greater effort made to hide undesirable implementation-only names and offer interesting identifiers. ........ r20143 | extempore | 2009-12-15 21:22:44 +0100 (Tue, 15 Dec 2009) | 1 line Moved takeDestructively into GroupedIterator. ........ r20149 | extempore | 2009-12-16 16:30:29 +0100 (Wed, 16 Dec 2009) | 1 line Removed an inapplicable comment with no review. ........
Diffstat (limited to 'src/actors/scala')
-rw-r--r--src/actors/scala/actors/AbstractActor.scala2
-rw-r--r--src/actors/scala/actors/AbstractReactor.scala2
-rw-r--r--src/actors/scala/actors/Actor.scala2
-rw-r--r--src/actors/scala/actors/ActorGC.scala4
-rw-r--r--src/actors/scala/actors/ActorProxy.scala2
-rw-r--r--src/actors/scala/actors/ActorTask.scala2
-rw-r--r--src/actors/scala/actors/Channel.scala2
-rw-r--r--src/actors/scala/actors/DaemonActor.scala2
-rw-r--r--src/actors/scala/actors/Debug.scala2
-rw-r--r--src/actors/scala/actors/Future.scala22
-rw-r--r--src/actors/scala/actors/IScheduler.scala2
-rw-r--r--src/actors/scala/actors/InputChannel.scala2
-rw-r--r--src/actors/scala/actors/MessageQueue.scala29
-rw-r--r--src/actors/scala/actors/OutputChannel.scala2
-rw-r--r--src/actors/scala/actors/ReactChannel.scala2
-rw-r--r--src/actors/scala/actors/Reaction.scala2
-rw-r--r--src/actors/scala/actors/Reactor.scala12
-rw-r--r--src/actors/scala/actors/ReactorTask.scala2
-rw-r--r--src/actors/scala/actors/ReplyReactor.scala6
-rw-r--r--src/actors/scala/actors/Replyable.scala2
-rw-r--r--src/actors/scala/actors/ReplyableActor.scala10
-rw-r--r--src/actors/scala/actors/ReplyableReactor.scala21
-rw-r--r--src/actors/scala/actors/Scheduler.scala12
-rw-r--r--src/actors/scala/actors/SchedulerAdapter.scala2
-rw-r--r--src/actors/scala/actors/remote/FreshNameCreator.scala2
-rw-r--r--src/actors/scala/actors/remote/JavaSerializer.scala2
-rw-r--r--src/actors/scala/actors/remote/NetKernel.scala2
-rw-r--r--src/actors/scala/actors/remote/Proxy.scala2
-rw-r--r--src/actors/scala/actors/remote/RemoteActor.scala2
-rw-r--r--src/actors/scala/actors/remote/Serializer.scala2
-rw-r--r--src/actors/scala/actors/remote/Service.scala2
-rw-r--r--src/actors/scala/actors/remote/TcpService.scala2
-rw-r--r--src/actors/scala/actors/scheduler/DaemonScheduler.scala8
-rw-r--r--src/actors/scala/actors/scheduler/DefaultThreadPoolScheduler.scala2
-rw-r--r--src/actors/scala/actors/scheduler/DelegatingScheduler.scala2
-rw-r--r--src/actors/scala/actors/scheduler/ExecutorScheduler.scala2
-rw-r--r--src/actors/scala/actors/scheduler/ForkJoinScheduler.scala2
-rw-r--r--src/actors/scala/actors/scheduler/ResizableThreadPoolScheduler.scala4
-rw-r--r--src/actors/scala/actors/scheduler/SchedulerService.scala4
-rw-r--r--src/actors/scala/actors/scheduler/SimpleExecutorScheduler.scala2
-rw-r--r--src/actors/scala/actors/scheduler/SingleThreadedScheduler.scala2
-rw-r--r--src/actors/scala/actors/scheduler/TerminationMonitor.scala9
-rw-r--r--src/actors/scala/actors/scheduler/TerminationService.scala4
-rw-r--r--src/actors/scala/actors/scheduler/ThreadPoolConfig.scala22
-rw-r--r--src/actors/scala/actors/scheduler/ThreadPoolScheduler.scala4
45 files changed, 129 insertions, 102 deletions
diff --git a/src/actors/scala/actors/AbstractActor.scala b/src/actors/scala/actors/AbstractActor.scala
index b2ae3d300a..9c72b307fa 100644
--- a/src/actors/scala/actors/AbstractActor.scala
+++ b/src/actors/scala/actors/AbstractActor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/AbstractReactor.scala b/src/actors/scala/actors/AbstractReactor.scala
index 4ff20eaf3c..5c4b082cff 100644
--- a/src/actors/scala/actors/AbstractReactor.scala
+++ b/src/actors/scala/actors/AbstractReactor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala
index b563104f41..625b19ebdd 100644
--- a/src/actors/scala/actors/Actor.scala
+++ b/src/actors/scala/actors/Actor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/ActorGC.scala b/src/actors/scala/actors/ActorGC.scala
index 68d8bda8e2..af1b0ed82d 100644
--- a/src/actors/scala/actors/ActorGC.scala
+++ b/src/actors/scala/actors/ActorGC.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -67,7 +67,7 @@ trait ActorGC extends TerminationMonitor {
}
/** Checks whether all actors have terminated. */
- override def allTerminated: Boolean = synchronized {
+ override private[actors] def allActorsTerminated: Boolean = synchronized {
activeActors <= 0
}
diff --git a/src/actors/scala/actors/ActorProxy.scala b/src/actors/scala/actors/ActorProxy.scala
index 221368c6aa..6364db87fe 100644
--- a/src/actors/scala/actors/ActorProxy.scala
+++ b/src/actors/scala/actors/ActorProxy.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/ActorTask.scala b/src/actors/scala/actors/ActorTask.scala
index df248053e1..8d8504245f 100644
--- a/src/actors/scala/actors/ActorTask.scala
+++ b/src/actors/scala/actors/ActorTask.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/Channel.scala b/src/actors/scala/actors/Channel.scala
index 0c9beacca6..24340d22f2 100644
--- a/src/actors/scala/actors/Channel.scala
+++ b/src/actors/scala/actors/Channel.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/DaemonActor.scala b/src/actors/scala/actors/DaemonActor.scala
index a81d2c8148..0dd828fbc1 100644
--- a/src/actors/scala/actors/DaemonActor.scala
+++ b/src/actors/scala/actors/DaemonActor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/Debug.scala b/src/actors/scala/actors/Debug.scala
index e94509e048..481b68d7f4 100644
--- a/src/actors/scala/actors/Debug.scala
+++ b/src/actors/scala/actors/Debug.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/Future.scala b/src/actors/scala/actors/Future.scala
index 38b268d795..d6dba36321 100644
--- a/src/actors/scala/actors/Future.scala
+++ b/src/actors/scala/actors/Future.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -27,8 +27,14 @@ import scheduler.DefaultThreadPoolScheduler
* @author Philipp Haller
*/
abstract class Future[+T](val inputChannel: InputChannel[T]) extends Responder[T] with Function0[T] {
+ private[actors] var fvalue: Option[Any] = None
+ private[actors] def fvalueTyped = fvalue.get.asInstanceOf[T]
+
+ @deprecated("this member is going to be removed in a future release")
+ protected def value: Option[Any] = fvalue
@deprecated("this member is going to be removed in a future release")
- protected var value: Option[Any] = None
+ protected def value_=(x: Option[Any]) { fvalue = x }
+
def isSet: Boolean
}
@@ -145,19 +151,19 @@ object Futures {
private[actors] def fromInputChannel[T](inputChannel: InputChannel[T]): Future[T] =
new Future[T](inputChannel) {
def apply() =
- if (isSet) value.get.asInstanceOf[T]
+ if (isSet) fvalueTyped
else inputChannel.receive {
- case any => value = Some(any); value.get.asInstanceOf[T]
+ case any => fvalue = Some(any); fvalueTyped
}
def respond(k: T => Unit): Unit =
- if (isSet) k(value.get.asInstanceOf[T])
+ if (isSet) k(fvalueTyped)
else inputChannel.react {
- case any => value = Some(any); k(value.get.asInstanceOf[T])
+ case any => fvalue = Some(any); k(fvalueTyped)
}
- def isSet = value match {
+ def isSet = fvalue match {
case None => inputChannel.receiveWithin(0) {
case TIMEOUT => false
- case any => value = Some(any); true
+ case any => fvalue = Some(any); true
}
case Some(_) => true
}
diff --git a/src/actors/scala/actors/IScheduler.scala b/src/actors/scala/actors/IScheduler.scala
index 8afed3aa86..7a47c670e7 100644
--- a/src/actors/scala/actors/IScheduler.scala
+++ b/src/actors/scala/actors/IScheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/InputChannel.scala b/src/actors/scala/actors/InputChannel.scala
index b7fb0d96b3..46988159fa 100644
--- a/src/actors/scala/actors/InputChannel.scala
+++ b/src/actors/scala/actors/InputChannel.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/MessageQueue.scala b/src/actors/scala/actors/MessageQueue.scala
index 469b24c1c1..fd43e36fff 100644
--- a/src/actors/scala/actors/MessageQueue.scala
+++ b/src/actors/scala/actors/MessageQueue.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -18,7 +18,12 @@ package scala.actors
*/
@serializable @SerialVersionUID(7124278808020037465L)
@deprecated("this class is going to be removed in a future release")
-class MessageQueueElement(val msg: Any, val session: OutputChannel[Any], var next: MessageQueueElement) {
+class MessageQueueElement(msg: Any, session: OutputChannel[Any], next: MessageQueueElement) extends MQueueElement(msg, session, next) {
+ def this() = this(null, null, null)
+ def this(msg: Any, session: OutputChannel[Any]) = this(msg, session, null)
+}
+
+private[actors] class MQueueElement(val msg: Any, val session: OutputChannel[Any], var next: MQueueElement) {
def this() = this(null, null, null)
def this(msg: Any, session: OutputChannel[Any]) = this(msg, session, null)
}
@@ -33,9 +38,11 @@ class MessageQueueElement(val msg: Any, val session: OutputChannel[Any], var nex
*/
@serializable @SerialVersionUID(2168935872884095767L)
@deprecated("this class is going to be removed in a future release")
-class MessageQueue(protected val label: String) {
- protected var first: MessageQueueElement = null
- protected var last: MessageQueueElement = null // last eq null iff list is empty
+class MessageQueue(label: String) extends MQueue(label)
+
+private[actors] class MQueue(protected val label: String) {
+ protected var first: MQueueElement = null
+ protected var last: MQueueElement = null // last eq null iff list is empty
private var _size = 0
def size = _size
@@ -47,7 +54,7 @@ class MessageQueue(protected val label: String) {
def append(msg: Any, session: OutputChannel[Any]) {
changeSize(1) // size always increases by 1
- val el = new MessageQueueElement(msg, session)
+ val el = new MQueueElement(msg, session)
if (isEmpty) first = el
else last.next = el
@@ -98,13 +105,13 @@ class MessageQueue(protected val label: String) {
/** Extracts the first message that satisfies the predicate <code>p</code>
* or <code>null</code> if <code>p</code> fails for all of them.
*/
- def extractFirst(p: (Any, OutputChannel[Any]) => Boolean): MessageQueueElement =
+ def extractFirst(p: (Any, OutputChannel[Any]) => Boolean): MQueueElement =
removeInternal(0)(p) orNull
- private def removeInternal(n: Int)(p: (Any, OutputChannel[Any]) => Boolean): Option[MessageQueueElement] = {
+ private def removeInternal(n: Int)(p: (Any, OutputChannel[Any]) => Boolean): Option[MQueueElement] = {
var pos = 0
- def foundMsg(x: MessageQueueElement) = {
+ def foundMsg(x: MQueueElement) = {
changeSize(-1)
Some(x)
}
@@ -148,7 +155,7 @@ class MessageQueue(protected val label: String) {
/** Debugging trait.
*/
-private[actors] trait MessageQueueTracer extends MessageQueue
+private[actors] trait MessageQueueTracer extends MQueue
{
private val queueNumber = MessageQueueTracer.getQueueNumber
@@ -166,7 +173,7 @@ private[actors] trait MessageQueueTracer extends MessageQueue
printQueue("REMOVE %s" format res)
res
}
- override def extractFirst(p: (Any, OutputChannel[Any]) => Boolean): MessageQueueElement = {
+ override def extractFirst(p: (Any, OutputChannel[Any]) => Boolean): MQueueElement = {
val res = super.extractFirst(p)
printQueue("EXTRACT_FIRST %s" format res)
res
diff --git a/src/actors/scala/actors/OutputChannel.scala b/src/actors/scala/actors/OutputChannel.scala
index aba8327970..4fdd606a40 100644
--- a/src/actors/scala/actors/OutputChannel.scala
+++ b/src/actors/scala/actors/OutputChannel.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/ReactChannel.scala b/src/actors/scala/actors/ReactChannel.scala
index ba0828a807..8bbbc04f53 100644
--- a/src/actors/scala/actors/ReactChannel.scala
+++ b/src/actors/scala/actors/ReactChannel.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/Reaction.scala b/src/actors/scala/actors/Reaction.scala
index 80db4b2c1e..25aea803af 100644
--- a/src/actors/scala/actors/Reaction.scala
+++ b/src/actors/scala/actors/Reaction.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/Reactor.scala b/src/actors/scala/actors/Reactor.scala
index 1015b2eb15..0eff67c163 100644
--- a/src/actors/scala/actors/Reactor.scala
+++ b/src/actors/scala/actors/Reactor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -32,7 +32,7 @@ private object Reactor {
trait Reactor extends OutputChannel[Any] {
/* The actor's mailbox. */
- private[actors] val mailbox = new MessageQueue("Reactor")
+ private[actors] val mailbox = new MQueue("Reactor")
// guarded by this
private[actors] val sendBuffer = new Queue[(Any, OutputChannel[Any])]
@@ -93,7 +93,7 @@ trait Reactor extends OutputChannel[Any] {
private[actors] def startSearch(msg: Any, replyTo: OutputChannel[Any], handler: Any => Boolean) =
() => scheduler execute (makeReaction(() => {
- val startMbox = new MessageQueue("Start")
+ val startMbox = new MQueue("Start")
synchronized { startMbox.append(msg, replyTo) }
searchMailbox(startMbox, handler, true)
}))
@@ -123,7 +123,7 @@ trait Reactor extends OutputChannel[Any] {
def receiver: Actor = this.asInstanceOf[Actor]
// guarded by this
- private[actors] def drainSendBuffer(mbox: MessageQueue) {
+ private[actors] def drainSendBuffer(mbox: MQueue) {
while (!sendBuffer.isEmpty) {
val item = sendBuffer.dequeue()
mbox.append(item._1, item._2)
@@ -131,7 +131,7 @@ trait Reactor extends OutputChannel[Any] {
}
// assume continuation != null
- private[actors] def searchMailbox(startMbox: MessageQueue,
+ private[actors] def searchMailbox(startMbox: MQueue,
handlesMessage: Any => Boolean,
resumeOnSameThread: Boolean) {
var tmpMbox = startMbox
@@ -144,7 +144,7 @@ trait Reactor extends OutputChannel[Any] {
synchronized {
// in mean time new stuff might have arrived
if (!sendBuffer.isEmpty) {
- tmpMbox = new MessageQueue("Temp")
+ tmpMbox = new MQueue("Temp")
drainSendBuffer(tmpMbox)
// keep going
} else {
diff --git a/src/actors/scala/actors/ReactorTask.scala b/src/actors/scala/actors/ReactorTask.scala
index b29e770bc4..8fde0e4aea 100644
--- a/src/actors/scala/actors/ReactorTask.scala
+++ b/src/actors/scala/actors/ReactorTask.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/ReplyReactor.scala b/src/actors/scala/actors/ReplyReactor.scala
index 03c97ebdae..4b31369db4 100644
--- a/src/actors/scala/actors/ReplyReactor.scala
+++ b/src/actors/scala/actors/ReplyReactor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -62,7 +62,7 @@ trait ReplyReactor extends Reactor with ReplyableReactor {
}
// assume continuation != null
- private[actors] override def searchMailbox(startMbox: MessageQueue,
+ private[actors] override def searchMailbox(startMbox: MQueue,
handlesMessage: Any => Boolean,
resumeOnSameThread: Boolean) {
var tmpMbox = startMbox
@@ -78,7 +78,7 @@ trait ReplyReactor extends Reactor with ReplyableReactor {
synchronized {
// in mean time new stuff might have arrived
if (!sendBuffer.isEmpty) {
- tmpMbox = new MessageQueue("Temp")
+ tmpMbox = new MQueue("Temp")
drainSendBuffer(tmpMbox)
// keep going
} else {
diff --git a/src/actors/scala/actors/Replyable.scala b/src/actors/scala/actors/Replyable.scala
index 62247a6b8e..2c7e55e06a 100644
--- a/src/actors/scala/actors/Replyable.scala
+++ b/src/actors/scala/actors/Replyable.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/ReplyableActor.scala b/src/actors/scala/actors/ReplyableActor.scala
index bf9703a629..2122dd854b 100644
--- a/src/actors/scala/actors/ReplyableActor.scala
+++ b/src/actors/scala/actors/ReplyableActor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -121,13 +121,13 @@ private[actors] trait ReplyableActor extends ReplyableReactor {
case Exit(from, reason) =>
exitReason = Some(reason)
case any =>
- value = Some(any)
+ fvalue = Some(any)
}
def apply(): Any =
if (isSet) {
- if (!value.isEmpty)
- value.get
+ if (!fvalue.isEmpty)
+ fvalue.get
else if (!exitReason.isEmpty) {
val reason = exitReason.get
if (reason.isInstanceOf[Throwable])
@@ -143,7 +143,7 @@ private[actors] trait ReplyableActor extends ReplyableReactor {
else
inputChannel.react(handleReply andThen {(x: Unit) => k(apply())})
- def isSet = (value match {
+ def isSet = (fvalue match {
case None =>
val handleTimeout: PartialFunction[Any, Boolean] = {
case TIMEOUT =>
diff --git a/src/actors/scala/actors/ReplyableReactor.scala b/src/actors/scala/actors/ReplyableReactor.scala
index 6ec1d31d1f..ecca50e26d 100644
--- a/src/actors/scala/actors/ReplyableReactor.scala
+++ b/src/actors/scala/actors/ReplyableReactor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -98,20 +98,19 @@ private[actors] trait ReplyableReactor extends Replyable[Any, Any] {
this.send(msg, out)
new Future[A](ftch) {
- def apply() =
- if (isSet) value.get.asInstanceOf[A]
- else {
- value = Some(res.get)
- value.get.asInstanceOf[A]
- }
+ def apply() = {
+ if (!isSet)
+ fvalue = Some(res.get)
+
+ fvalueTyped
+ }
def respond(k: A => Unit): Unit =
- if (isSet) k(value.get.asInstanceOf[A])
+ if (isSet) k(fvalueTyped)
else inputChannel.react {
- case any => value = Some(any); k(value.get.asInstanceOf[A])
+ case any => fvalue = Some(any); k(fvalueTyped)
}
def isSet =
- !value.isEmpty
+ !fvalue.isEmpty
}
}
-
}
diff --git a/src/actors/scala/actors/Scheduler.scala b/src/actors/scala/actors/Scheduler.scala
index 080abbbf41..d653271c1e 100644
--- a/src/actors/scala/actors/Scheduler.scala
+++ b/src/actors/scala/actors/Scheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -11,11 +11,11 @@
package scala.actors
import java.util.concurrent._
-import scheduler.{DelegatingScheduler, ForkJoinScheduler, ResizableThreadPoolScheduler}
+import scheduler.{DelegatingScheduler, ForkJoinScheduler, ResizableThreadPoolScheduler, ThreadPoolConfig}
/**
* The <code>Scheduler</code> object is used by <code>Actor</code> to
- * execute tasks of an execution of an actor.
+ * execute tasks of an actor execution.
*
* @author Philipp Haller
*/
@@ -24,11 +24,7 @@ object Scheduler extends DelegatingScheduler {
Debug.info("initializing "+this+"...")
def makeNewScheduler: IScheduler = {
- // test on which JVM we are running
- val jvmVendor = System.getProperty("java.vm.vendor")
- val sched = if (jvmVendor.indexOf("IBM") != -1) {
- Debug.info(this+": running on a "+jvmVendor+" JVM")
- // on IBM J9 1.6 do not use ForkJoinPool
+ val sched = if (!ThreadPoolConfig.useForkJoin) {
val s = new ResizableThreadPoolScheduler(false)
s.start()
s
diff --git a/src/actors/scala/actors/SchedulerAdapter.scala b/src/actors/scala/actors/SchedulerAdapter.scala
index 2c5ccd2dd8..f88d15bb38 100644
--- a/src/actors/scala/actors/SchedulerAdapter.scala
+++ b/src/actors/scala/actors/SchedulerAdapter.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/remote/FreshNameCreator.scala b/src/actors/scala/actors/remote/FreshNameCreator.scala
index 9be6d06b5b..298dd3ac6c 100644
--- a/src/actors/scala/actors/remote/FreshNameCreator.scala
+++ b/src/actors/scala/actors/remote/FreshNameCreator.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/remote/JavaSerializer.scala b/src/actors/scala/actors/remote/JavaSerializer.scala
index 4e8073055e..f349e80a2e 100644
--- a/src/actors/scala/actors/remote/JavaSerializer.scala
+++ b/src/actors/scala/actors/remote/JavaSerializer.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/remote/NetKernel.scala b/src/actors/scala/actors/remote/NetKernel.scala
index 8673b03697..9c2b18ada2 100644
--- a/src/actors/scala/actors/remote/NetKernel.scala
+++ b/src/actors/scala/actors/remote/NetKernel.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/remote/Proxy.scala b/src/actors/scala/actors/remote/Proxy.scala
index 60bcd34221..f9a6cd8fed 100644
--- a/src/actors/scala/actors/remote/Proxy.scala
+++ b/src/actors/scala/actors/remote/Proxy.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/remote/RemoteActor.scala b/src/actors/scala/actors/remote/RemoteActor.scala
index 7316017e32..860ff3bfe3 100644
--- a/src/actors/scala/actors/remote/RemoteActor.scala
+++ b/src/actors/scala/actors/remote/RemoteActor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/remote/Serializer.scala b/src/actors/scala/actors/remote/Serializer.scala
index fe3ddb0fae..d6d327da04 100644
--- a/src/actors/scala/actors/remote/Serializer.scala
+++ b/src/actors/scala/actors/remote/Serializer.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/remote/Service.scala b/src/actors/scala/actors/remote/Service.scala
index 86891b3987..faf4f0b322 100644
--- a/src/actors/scala/actors/remote/Service.scala
+++ b/src/actors/scala/actors/remote/Service.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/remote/TcpService.scala b/src/actors/scala/actors/remote/TcpService.scala
index 9a43f938c0..e09efe161d 100644
--- a/src/actors/scala/actors/remote/TcpService.scala
+++ b/src/actors/scala/actors/remote/TcpService.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/scheduler/DaemonScheduler.scala b/src/actors/scala/actors/scheduler/DaemonScheduler.scala
index e421984d8b..02f652db0b 100644
--- a/src/actors/scala/actors/scheduler/DaemonScheduler.scala
+++ b/src/actors/scala/actors/scheduler/DaemonScheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -17,11 +17,7 @@ package scheduler
object DaemonScheduler extends DelegatingScheduler {
def makeNewScheduler(): IScheduler = {
- // test on which JVM we are running
- val jvmVendor = System.getProperty("java.vm.vendor")
- val sched = if (jvmVendor.indexOf("IBM") != -1) {
- Debug.info(this+": running on a "+jvmVendor+" JVM")
- // on IBM J9 1.6 do not use ForkJoinPool
+ val sched = if (!ThreadPoolConfig.useForkJoin) {
val s = new ResizableThreadPoolScheduler(true)
s.start()
s
diff --git a/src/actors/scala/actors/scheduler/DefaultThreadPoolScheduler.scala b/src/actors/scala/actors/scheduler/DefaultThreadPoolScheduler.scala
index f5eb6c4884..4fed00ba26 100644
--- a/src/actors/scala/actors/scheduler/DefaultThreadPoolScheduler.scala
+++ b/src/actors/scala/actors/scheduler/DefaultThreadPoolScheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/scheduler/DelegatingScheduler.scala b/src/actors/scala/actors/scheduler/DelegatingScheduler.scala
index 434911c48d..d1c99d7c13 100644
--- a/src/actors/scala/actors/scheduler/DelegatingScheduler.scala
+++ b/src/actors/scala/actors/scheduler/DelegatingScheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/scheduler/ExecutorScheduler.scala b/src/actors/scala/actors/scheduler/ExecutorScheduler.scala
index 52ec977b1f..bcd524f345 100644
--- a/src/actors/scala/actors/scheduler/ExecutorScheduler.scala
+++ b/src/actors/scala/actors/scheduler/ExecutorScheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/scheduler/ForkJoinScheduler.scala b/src/actors/scala/actors/scheduler/ForkJoinScheduler.scala
index b0198d4879..54fab4fb11 100644
--- a/src/actors/scala/actors/scheduler/ForkJoinScheduler.scala
+++ b/src/actors/scala/actors/scheduler/ForkJoinScheduler.scala
@@ -67,7 +67,7 @@ class ForkJoinScheduler(val initCoreSize: Int, val maxSize: Int, daemon: Boolean
if (terminating)
throw new QuitException
- if (allTerminated) {
+ if (allActorsTerminated) {
Debug.info(this+": all actors terminated")
terminating = true
throw new QuitException
diff --git a/src/actors/scala/actors/scheduler/ResizableThreadPoolScheduler.scala b/src/actors/scala/actors/scheduler/ResizableThreadPoolScheduler.scala
index e9044ca268..ff74d0bc8b 100644
--- a/src/actors/scala/actors/scheduler/ResizableThreadPoolScheduler.scala
+++ b/src/actors/scala/actors/scheduler/ResizableThreadPoolScheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -122,7 +122,7 @@ class ResizableThreadPoolScheduler(protected val terminate: Boolean,
if (coreSize - activeBlocked < numCores && coreSize < maxSize) {
coreSize = numCores + activeBlocked
executor.setCorePoolSize(coreSize)
- } else if (terminate && allTerminated) {
+ } else if (terminate && allActorsTerminated) {
// if all worker threads idle terminate
if (executor.getActiveCount() == 0) {
Debug.info(this+": initiating shutdown...")
diff --git a/src/actors/scala/actors/scheduler/SchedulerService.scala b/src/actors/scala/actors/scheduler/SchedulerService.scala
index 37cfa5ca59..dca8bb5b9c 100644
--- a/src/actors/scala/actors/scheduler/SchedulerService.scala
+++ b/src/actors/scala/actors/scheduler/SchedulerService.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -50,7 +50,7 @@ abstract class SchedulerService(daemon: Boolean) extends Thread with IScheduler
gc()
- if (allTerminated)
+ if (allActorsTerminated)
throw new QuitException
}
}
diff --git a/src/actors/scala/actors/scheduler/SimpleExecutorScheduler.scala b/src/actors/scala/actors/scheduler/SimpleExecutorScheduler.scala
index d77777caae..6c8814e90c 100644
--- a/src/actors/scala/actors/scheduler/SimpleExecutorScheduler.scala
+++ b/src/actors/scala/actors/scheduler/SimpleExecutorScheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/scheduler/SingleThreadedScheduler.scala b/src/actors/scala/actors/scheduler/SingleThreadedScheduler.scala
index 0a9c41a0c0..9eca972e90 100644
--- a/src/actors/scala/actors/scheduler/SingleThreadedScheduler.scala
+++ b/src/actors/scala/actors/scheduler/SingleThreadedScheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
diff --git a/src/actors/scala/actors/scheduler/TerminationMonitor.scala b/src/actors/scala/actors/scheduler/TerminationMonitor.scala
index 875b79a8c1..5510ebb095 100644
--- a/src/actors/scala/actors/scheduler/TerminationMonitor.scala
+++ b/src/actors/scala/actors/scheduler/TerminationMonitor.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -61,11 +61,14 @@ trait TerminationMonitor {
}
/** Checks whether all actors have terminated. */
- @deprecated("this method is going to be removed in a future release")
- def allTerminated: Boolean = synchronized {
+ private[actors] def allActorsTerminated: Boolean = synchronized {
started && activeActors <= 0
}
+ /** Deprecated non-actor-private version */
+ @deprecated("this method is going to be removed in a future release")
+ def allTerminated: Boolean = allActorsTerminated
+
/** Checks for actors that have become garbage. */
protected def gc() {}
}
diff --git a/src/actors/scala/actors/scheduler/TerminationService.scala b/src/actors/scala/actors/scheduler/TerminationService.scala
index 3a05d57b6c..b6f03f11e5 100644
--- a/src/actors/scala/actors/scheduler/TerminationService.scala
+++ b/src/actors/scala/actors/scheduler/TerminationService.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -42,7 +42,7 @@ abstract class TerminationService(terminate: Boolean)
if (terminating)
throw new QuitException
- if (terminate && allTerminated)
+ if (terminate && allActorsTerminated)
throw new QuitException
}
}
diff --git a/src/actors/scala/actors/scheduler/ThreadPoolConfig.scala b/src/actors/scala/actors/scheduler/ThreadPoolConfig.scala
index 3c2f5ce5da..5ffbc80421 100644
--- a/src/actors/scala/actors/scheduler/ThreadPoolConfig.scala
+++ b/src/actors/scala/actors/scheduler/ThreadPoolConfig.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -41,4 +41,24 @@ object ThreadPoolConfig {
case Some(i) if (i < corePoolSize) => corePoolSize
case _ => 256
}
+
+ private[actors] def useForkJoin: Boolean =
+ try {
+ val fjProp = System.getProperty("actors.enableForkJoin")
+ if (fjProp != null)
+ fjProp.equals("true")
+ else {
+ val javaVersion = System.getProperty("java.version")
+ val jvmVendor = System.getProperty("java.vm.vendor")
+ Debug.info(this+": java.version = "+javaVersion)
+ Debug.info(this+": java.vm.vendor = "+jvmVendor)
+ (javaVersion.indexOf("1.6") != -1 ||
+ javaVersion.indexOf("1.7") != -1) &&
+ // on IBM J9 1.6 do not use ForkJoinPool
+ (jvmVendor.indexOf("Sun") != -1)
+ }
+ } catch {
+ case se: SecurityException => false
+ }
+
}
diff --git a/src/actors/scala/actors/scheduler/ThreadPoolScheduler.scala b/src/actors/scala/actors/scheduler/ThreadPoolScheduler.scala
index 08c842e71b..2eb18645ff 100644
--- a/src/actors/scala/actors/scheduler/ThreadPoolScheduler.scala
+++ b/src/actors/scala/actors/scheduler/ThreadPoolScheduler.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2009, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -57,7 +57,7 @@ class ThreadPoolScheduler(protected var executor: ThreadPoolExecutor,
case _: InterruptedException =>
}
- if (terminating || (terminate && allTerminated))
+ if (terminating || (terminate && allActorsTerminated))
throw new QuitException
gc()