Commit Graph

3742 Commits

Author SHA1 Message Date
Mike Jensen
f4f4b8a26b Fix for unit test failure when threads are created too slowly. 2014-01-03 10:08:36 -07:00
Mike Jensen
f7341732fc Added some tests which would fail with a simple volatile, but should work for the atomic implementations. 2014-01-03 09:36:27 -07:00
Mike Jensen
f7d77473a4 Merge branch 'master' of github.com:ReadyTalk/avian into concurrency_classpath_extension 2014-01-03 08:49:40 -07:00
Mike Jensen
1275bdfd35 Merge pull request #145 from dicej/putOrderedLong
implement Unsafe.putOrderedLong and putVolatileLong, plus a build fix and cleanup
2014-01-03 07:31:23 -08:00
Joel Dice
789c36a459 move Unsafe.putObjectVolatile and putOrderedObject implementations
This makes them available to all class libraries, not just OpenJDK.
2014-01-02 18:00:53 -07:00
Joel Dice
cc5b58725a implement Unsafe.putOrderedLong and putVolatileLong
The former just defers to the latter for now, since it provides
strictly weaker guarantees.  Thus it's correct to use full
volatile-style barriers, though not as efficient as it could be on
some architectures.
2014-01-02 17:49:56 -07:00
Joel Dice
ab4adef373 remove obsolete idle statement from Unsafe.getLongVolatile
Now that Josh has fixed the busy block bug (see commit 10d15d2), we
don't need this anymore.
2014-01-02 17:47:42 -07:00
Joel Dice
e19bdda13e fix uninitialized value warning in compile.cpp
Clang was complaining that newIp might be used uninitialized at the
bottom of our giant, unstructured compile loop, so I initialized it
with a bogus value, which means it will at least fail consistently if
Clang is right and there really is a path by which that code is
reached without otherwise initializing newIp.
2014-01-02 17:44:33 -07:00
Mike Jensen
99c59cfe94 Start for a basic atomic implementation for avian. Still need to figure out how to do the Array versions of these. But I wanted to wait till we have the needed Unsafe implementation and add testing for these before we go further. 2014-01-02 13:01:13 -07:00
Joel Dice
ef3e3d749b Merge pull request #143 from jentfoo/concurrency_classpath_extension
Expanding avian's classpath for java.util.concurrent
2013-12-24 10:50:30 -08:00
Mike Jensen
996e52170f Fix for spelling error joel pointed out, as well as a simple unit test around the TimeUnit conversions 2013-12-24 11:30:50 -07:00
Mike Jensen
8b7f689e1a Added the easy to add interfaces and implementations for java.util.concurrent to pave the way for future expansion of avians java.util.concurrent classpath implementation. 2013-12-23 14:19:41 -07:00
Joel Dice
4570195a9b Merge pull request #141 from joshuawarner32/clang-format
Specify formatting style via .clang-format config file
2013-12-20 13:36:11 -08:00
Joel Dice
be549ecae3 Merge pull request #142 from joshuawarner32/compiler-boilerplate
Remove boilerplate in Compiler interface
2013-12-20 13:33:30 -08:00
Joshua Warner
fa65c67fbf Extract independent runtime thunks into their own file 2013-12-18 22:46:58 -07:00
Joshua Warner
f1c6b97373 Reformat a few extra-long lines 2013-12-18 22:25:23 -07:00
Joshua Warner
b3d6f5d94d Remove redundancy in compiling jump operations 2013-12-18 22:20:18 -07:00
Joshua Warner
ac984775a5 Remove redundancy in compiling arithmetic operations 2013-12-18 22:03:42 -07:00
Joshua Warner
eab36b3a23 Remove boilerplate code (nullaryOp methods in Compiler) 2013-12-18 16:51:20 -07:00
Joshua Warner
bd7b66a898 Remove boilerplate code (unaryOp methods in Compiler) 2013-12-18 16:43:15 -07:00
Joshua Warner
23633d1f3b Merge pull request #140 from dicej/master
only enable LTO if use-lto is true
2013-12-18 15:00:38 -08:00
Joshua Warner
7f8f010b61 Specify formatting style via .clang-format config file 2013-12-18 15:37:47 -07:00
Joel Dice
8bd1c8de0e only enable LTO if use-lto is true
When using clang, as with GCC, we shouldn't use LTO if the developer
has specified use-lto=false.
2013-12-18 15:26:43 -07:00
Joshua Warner
07d0f1172f Remove boilerplate code (float binaryOp methods in Compiler) 2013-12-18 15:22:38 -07:00
Joshua Warner
d5c1a094ca Remove boilerplate code (general binaryOp methods in Compiler) 2013-12-18 15:11:30 -07:00
Joshua Warner
b66a8549fd Remove boilerplate code (jump* methods in Compiler) 2013-12-18 14:38:05 -07:00
Joshua Warner
fd5bd9d77e Merge pull request #139 from dicej/master
don't throw UnknownHostException from InetAddress.getByName("0.0.0.0")
2013-12-18 11:07:11 -08:00
Joel Dice
fc38f596f1 fix header include order build regression 2013-12-18 11:40:23 -07:00
Joel Dice
38477c113c fix iOS 7 build using latest Xcode
It looks like the iOS 7 SDK doesn't have GCC anymore, so we need to
use clang instead.  Also, thread_act.h and thread_status.h have moved,
so I updated arm.h accordingly.  That might break the build for older
SDKs, but I don't have one available at the moment.  If it does break,
I'll fix it.
2013-12-18 11:10:04 -07:00
Joel Dice
15906ddb12 fix build regression on platforms with no native 64-bit CAS
Unsafe.compareAndSwapLong was moved from classpath-openjdk.cpp to
builtin.cpp, but the fieldForOffset helper function was not, which
only caused problems when I tried to build for ARM.  This commit moves
said helper function, along with Unsafe.getVolatileLong, which also
uses it.
2013-12-18 11:06:15 -07:00
Joel Dice
59d5bbbb1a throw UnknownHostException if host is not found in InetAddress.getByName 2013-12-18 10:43:11 -07:00
Joel Dice
5f40c1642e don't throw UnknownHostException from InetAddress.getByName("0.0.0.0")
0.0.0.0 means any local interface, which is commonly used by servers
which wish to listen on all interfaces.
2013-12-18 10:12:10 -07:00
Joel Dice
dae1f81d27 Merge pull request #138 from soc/topic/unsafe-compareAndSwap
Move Unsafe.compareAndSwapLong from classpath-openjdk.cpp to builtin.cpp
2013-12-18 08:35:01 -08:00
Simon Ochsenreither
55e9923ee6 Move Unsafe.compareAndSwapLong from ...
... classpath-openjdk.cpp to builtin.cpp.
2013-12-18 05:19:45 +01:00
Joel Dice
10d15d23fb Merge pull request #135 from joshuawarner32/no-busy-block
make sure a busy-waiting loop can't block the GC and hence the whole VM
2013-12-13 16:35:20 -08:00
Joshua Warner
0645b0e4cf prevent busywait loops from blocking the VM in interpret mode 2013-12-13 11:48:26 -07:00
Joshua Warner
0340be23ce make sure a busy-waiting loop can't block the GC (and hence the whole VM) 2013-12-13 10:39:36 -07:00
Joel Dice
cc2e27a879 Merge pull request #133 from joshuawarner32/consolidate-lists
consolidate many implicit list types into one
2013-12-11 11:43:43 -08:00
Joshua Warner
06432253ba consolidate many implicit list types into one 2013-12-11 10:54:50 -07:00
Joel Dice
2cb606babd Merge pull request #132 from joshuawarner32/master
fix java 1.6 compatibility, and make sure it's maintained in the future
2013-12-11 09:20:03 -08:00
Joshua Warner
ef82c4a03a Fix extra java 1.6 failures... that only happen with -source 1.6. Go figure. 2013-12-11 08:51:00 -07:00
Joshua Warner
d2c3d771d7 fix java 1.6 compatibility, and make sure it's maintained in the future 2013-12-10 20:26:29 -07:00
Joel Dice
19274ee3d6 Merge pull request #129 from joshuawarner32/openjdk-osx10.9-build-fix
Openjdk osx10.9 build fix
2013-12-07 19:42:08 -08:00
Joel Dice
8c3f3b268a Merge pull request #130 from joshuawarner32/openjdk-files-compat
fix FileInputStream for newer openjdk7 versions
2013-12-07 18:52:51 -08:00
Joshua Warner
94f5888f97 prevent openjdk-src build from trying to load the installed 'JavaRuntimeSupport' (fixes #128) 2013-12-07 18:49:23 -07:00
Joshua Warner
773417ab2b fix openjdk-src build failures on osx 10.9 2013-12-07 16:43:18 -07:00
Joshua Warner
9a899a2e4a fix FileInputStream for newer openjdk7 versions 2013-12-07 16:22:08 -07:00
Joel Dice
a7469164fe Merge pull request #126 from joshuawarner32/master
Use 0777/0666 permissions when creating dirs/files.
2013-12-07 10:55:14 -08:00
Joshua Warner
1dc932618f Use 0777/0666 permissions when creating dirs/files.
Just like openjdk, we now depend on the processes umask (0022, for
instance) to mask that into 0755 or 0666, for instance.

This fixes #57.
2013-12-06 22:22:16 -07:00
Joshua Warner
1f1d5095b8 Merge pull request #125 from dicej/master
use portable conditional expression in test.sh
2013-12-06 20:30:18 -08:00