Commit Graph

7 Commits

Author SHA1 Message Date
Siva Annamalai 7e05c6c1f0 Use atomic operations to increment/decrement memory usage counts as multiple threads could be allocating at the same time.
Review URL: https://codereview.chromium.org/1580813003 .
2016-01-29 12:46:22 -08:00
Siva Annamalai a7ebeb00fb Add a CompareAndSwapUint32 variant to AtomicOperations so that it is possible to a CAS of a 32 bit value.
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1562253002 .
2016-01-06 17:08:31 -08:00
Daniel Andersson e7fb1c8516 Compatible atomics: volatile for LoadRelaxed, replace FetchAndAdd with FetchAndDecrement.
Using volatile on a word size location will generate a single move instruction without order guarantees and is supported on all compilers.

Replace FetchAndAdd with FetchAndDecrement, since the latter is sufficient and eaiser to implement portably (in particular on some Windows setups).

BUG=https://github.com/dart-lang/sdk/issues/24049
R=iposva@google.com

Review URL: https://codereview.chromium.org//1287853005 .
2015-08-13 09:21:38 -07:00
Daniel Andersson 071ea16620 Use memcpy for Atomic::LoadRelaxed.
BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org//1285923003 .
2015-08-11 13:52:07 -07:00
Daniel Andersson 086329fd9c Safe and efficient stack-limit based interrupt checking in C++.
Remove potentially dangerous (but currently unused) Isolate::stack_limit() accessor.
Add method to test whether interrupts are scheduled, using relaxed memory ordering.
Document and test correct usage by adding a new unit test.

This will be used to periodically check for safepoints in C++ (which will then be equivalent to our generated code).

BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org//1277473004 .
2015-08-11 12:37:57 -07:00
iposva@google.com 55357d2993 - Use the simulator to do atomic operations that could also
be executed in generated code.

R=koda@google.com, zra@google.com

Review URL: https://codereview.chromium.org//677193002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41332 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-27 19:21:33 +00:00
iposva@google.com 50652300dc - Add AtomicOperations::CompareAndSwapWord
- Make AtomicOperations inlineable.
- Use atomic tag word updates from C++ where necessary.

Review URL: https://codereview.chromium.org//529823002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39731 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-01 18:18:44 +00:00