1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-01 09:51:22 -08:00
Commit graph

2522 commits

Author SHA1 Message Date
Gareth Rees
2f4affed50 Fix issues identified in review by dl.
Copied from Perforce
 Change: 194184
2018-06-26 11:31:33 +01:00
Gareth Rees
84754cec52 Fix copy-paste error.
Copied from Perforce
 Change: 194128
2018-06-23 20:49:17 +01:00
Gareth Rees
f76cf2e042 Awlsegcreate is a thin wrapper around poolgenalloc, so it's simpler just to call the latter.
Copied from Perforce
 Change: 193874
2018-06-18 09:39:18 +01:00
Gareth Rees
04120dbb56 Losegcreate is a thin wrapper around poolgenalloc, so it's simpler just to call the latter.
Copied from Perforce
 Change: 193869
2018-06-18 09:29:33 +01:00
Gareth Rees
c9ed424554 Amcsegfixinplace is a better name for a function that operates on an amc segment.
Copied from Perforce
 Change: 193856
2018-06-16 18:47:14 +01:00
Gareth Rees
d6475efc2f Keep forward declarations for seg methods together.
Copied from Perforce
 Change: 193842
2018-06-15 14:55:40 +01:00
Gareth Rees
5324b1a2dd Catch-up merge from master sources at change 193831 to branch/2017-03-04/seg-methods.
Copied from Perforce
 Change: 193836
2018-06-15 13:46:23 +01:00
Gareth Rees
00da8664cd Mach_thread_self() can in theory "return mach_port_null if a resource shortage prevented the reception of the send right" so add a check in each case. (there's nothing we can do about it but at least we can notice.)
Copied from Perforce
 Change: 193831
2018-06-15 12:54:28 +01:00
Gareth Rees
fd9f9c41d0 It's safe to register a thread multiple times on macos, so there is no need for the guard.
Copied from Perforce
 Change: 193828
2018-06-15 12:44:51 +01:00
Gareth Rees
c4a840d676 Rename "mac os x" and "os x" to "macos", except for a few cases where for historical accuracy we want to continue to refer to the former name.
Copied from Perforce
 Change: 193821
2018-06-15 12:15:36 +01:00
Gareth Rees
11fff0151d Fix typo.
Copied from Perforce
 Change: 193811
2018-06-15 11:15:42 +01:00
Gareth Rees
0662e96899 Refactor atfork code to improve separation of concerns.
Copied from Perforce
 Change: 193806
2018-06-15 10:58:33 +01:00
Gareth Rees
a3779b8c3b Start the collection and dereference the objects in the parent as well as the child.
Copied from Perforce
 Change: 193800
2018-06-15 10:06:59 +01:00
Gareth Rees
7ed378141c Fix issues identified in review by nb.
Copied from Perforce
 Change: 193793
2018-06-14 19:31:30 +01:00
Gareth Rees
a865019b13 Update design history. restore accidentally removed check.
Copied from Perforce
 Change: 193787
2018-06-14 17:55:03 +01:00
Gareth Rees
e98b2a05c8 Improve comments.
Copied from Perforce
 Change: 193783
2018-06-14 17:44:41 +01:00
Gareth Rees
78e6d003bb Fix ansi build.
Copied from Perforce
 Change: 193769
2018-06-14 16:58:24 +01:00
Gareth Rees
38a08a6a62 Avoid compilation errors from latest msvc.
Copied from Perforce
 Change: 193768
2018-06-14 16:54:33 +01:00
Gareth Rees
598b64afb4 Support for fork on linux and freebsd.
Copied from Perforce
 Change: 193765
2018-06-14 16:47:23 +01:00
Gareth Rees
61e24c399a Take locks before fork(), release them in the parent and reinitialize them in the child.
Add forktest target to the Xcode project.
Write design for fork safety and cross-reference from the code.
Update release notes.

Copied from Perforce
 Change: 193760
2018-06-14 16:25:08 +01:00
Gareth Rees
2ccdd80953 Extend forktest so that it does allocation before the fork and collection afterwards; this ensures that we hit the read barrier and thus exercise the exception handling.
After forking in the child, re-create exception port and exception thread, and re-register the (only) thread with that port.

Copied from Perforce
 Change: 193755
2018-06-14 12:54:35 +01:00
Gareth Rees
47fc093662 Add fork test case (fails on os x if pthread_atfork is not called).
pthread_atfork handlers on OS X: in the child, update the mach port for the forking thread and move all other threads to the dead ring.

Copied from Perforce
 Change: 193746
2018-06-13 17:09:07 +01:00
Gareth Rees
169b8dcaf6 Avoid using deprecated function mps_fix and deprecated macro mps_fix in the test cases; use mps_fix12 instead.
Copied from Perforce
 Change: 193726
2018-06-13 13:59:14 +01:00
Gareth Rees
2b3fbbb8d3 New pool method poolsegpoolgen gets the pool generation for a segment. (this allows the segment whiten and reclaim methods not to need to know the pool class.)
Copied from Perforce
 Change: 193084
 ServerID: perforce.ravenbrook.com
2017-03-31 13:28:25 +01:00
Gareth Rees
d8a5c865ba Since we know that a segment belongs to a pool with a format at the point where we call segwalk, it makes sense to pass the format.
Copied from Perforce
 Change: 193079
 ServerID: perforce.ravenbrook.com
2017-03-31 09:15:41 +01:00
Gareth Rees
28814fc67c Avoid "result of 32-bit shift implicitly converted to 64 bits" warning from visual c.
Check AWL pool generation.
Update design.

Copied from Perforce
 Change: 193076
 ServerID: perforce.ravenbrook.com
2017-03-31 09:03:38 +01:00
Gareth Rees
178c269987 Move alignshift to pool structure allows us to eliminate duplicate code between awl and lo.
Copied from Perforce
 Change: 193071
 ServerID: perforce.ravenbrook.com
2017-03-31 08:41:14 +01:00
Gareth Rees
c9041d407b Only walk segments belonging to pools with an object format.
Copied from Perforce
 Change: 193066
 ServerID: perforce.ravenbrook.com
2017-03-31 08:05:59 +01:00
Gareth Rees
5077e27813 Check that arena, buffer, land classes override sets of related methods.
Copied from Perforce
 Change: 193060
 ServerID: perforce.ravenbrook.com
2017-03-30 20:43:43 +01:00
Gareth Rees
d02a8f277e Check that segment classes override sets of related methods.
Add missing finish functions amcSegFinish, mrgLinkSegFinish, mrgRefSegFinish, sncSegFinish.
Check all class constructor results.

Copied from Perforce
 Change: 193055
 ServerID: perforce.ravenbrook.com
2017-03-30 11:37:41 +01:00
Gareth Rees
ab554bc110 Avoid "format may be used uninitialized" warning.
Copied from Perforce
 Change: 193050
 ServerID: perforce.ravenbrook.com
2017-03-30 10:42:40 +01:00
Gareth Rees
dd1b5b2f27 No need for poolclassmixinscan and abstractscanpool.
Copied from Perforce
 Change: 193045
 ServerID: perforce.ravenbrook.com
2017-03-30 10:23:15 +01:00
Gareth Rees
b295670a76 Changing segnowalk to segtrivwalk avoids the need for attrfmt (now we can walk all segments).
Copied from Perforce
 Change: 193044
 ServerID: perforce.ravenbrook.com
2017-03-30 10:18:22 +01:00
Gareth Rees
4c9f14729f Move access method from pool class to segment class.
Copied from Perforce
 Change: 193039
 ServerID: perforce.ravenbrook.com
2017-03-30 09:55:37 +01:00
Gareth Rees
6e53fd80e0 Remove unused variable pool.
Copied from Perforce
 Change: 193034
 ServerID: perforce.ravenbrook.com
2017-03-30 09:19:54 +01:00
Gareth Rees
109dabad27 Move walk method from pool class to segment class.
Copied from Perforce
 Change: 193028
 ServerID: perforce.ravenbrook.com
2017-03-30 08:54:35 +01:00
Gareth Rees
45e05c62cd Move fix and fixemergency methods from pool class to segment class.
Copied from Perforce
 Change: 193023
 ServerID: perforce.ravenbrook.com
2017-03-30 08:09:14 +01:00
Gareth Rees
10e9331822 Remove unused fixclosure field from trace and scanstate structures.
Copied from Perforce
 Change: 193018
 ServerID: perforce.ravenbrook.com
2017-03-30 07:14:10 +01:00
Gareth Rees
1cb3265e80 Move scan method from pool class to segment class.
Copied from Perforce
 Change: 193012
 ServerID: perforce.ravenbrook.com
2017-03-29 19:17:17 +01:00
Gareth Rees
de269de563 Move reclaim method from pool class to segment class.
Copied from Perforce
 Change: 193007
 ServerID: perforce.ravenbrook.com
2017-03-29 17:13:45 +01:00
Gareth Rees
bfe43c367e Move whiten method from pool class to segment class.
Copied from Perforce
 Change: 193002
 ServerID: perforce.ravenbrook.com
2017-03-29 16:22:14 +01:00
Gareth Rees
826b74a030 Move greyen method from pool class to segment class.
Copied from Perforce
 Change: 192997
 ServerID: perforce.ravenbrook.com
2017-03-29 15:58:32 +01:00
Gareth Rees
6dabd6de2b Move the blacken method from the pool class to the segment class.
Copied from Perforce
 Change: 192994
 ServerID: perforce.ravenbrook.com
2017-03-29 15:32:17 +01:00
Gareth Rees
b9ae05b94f Remove undocumented plinth function mps_lib_assert_fail_expr and rewrite assertp macro to call documented plinth function mps_lib_assert_fail instead.
Copied from Perforce
 Change: 192941
 ServerID: perforce.ravenbrook.com
2017-03-04 11:17:11 +00:00
Gareth Rees
e9df5d6a35 Remove used epvmdefaultsubsequentsegsize.
Copied from Perforce
 Change: 192938
 ServerID: perforce.ravenbrook.com
2017-03-04 11:02:31 +00:00
Gareth Rees
cccb1c1e3c Documentation improvements.
Copied from Perforce
 Change: 192905
 ServerID: perforce.ravenbrook.com
2017-02-18 09:38:15 +00:00
Gareth Rees
4af5b181b3 Fix typos.
Copied from Perforce
 Change: 192890
 ServerID: perforce.ravenbrook.com
2017-02-11 11:30:15 +00:00
Gareth Rees
3389ec396f Add "cold end" and "hot end" to the glossary index.
Copied from Perforce
 Change: 192660
 ServerID: perforce.ravenbrook.com
2016-10-20 13:52:30 +01:00
Gareth Rees
0f4564a71b Merge design.mps.class-interface into design.mps.pool (as suggested by pekka p. pirinen on 1999-07-20).
Bring pool class method descriptions up to date.
Document bufferClass, bufferFill, bufferEmpty, totalSize, freeSize methods.
Document generic instance methods at design.mps.protocol.method.

Copied from Perforce
 Change: 192642
 ServerID: perforce.ravenbrook.com
2016-10-19 15:34:35 +01:00
Gareth Rees
577b32d481 Cherry-pick change 192595 from custom/cet/main, removing mps_addr_object. this function failed to solve the problem of decoding the stack on 64-bit windows, because the stack may need to be decoded after an mps assertion failure, in which case the arena lock is held and mps_addr_object cannot be called. we eventually solved the problem in a different way (using mps_arena_postmortem) and mps_addr_object is no longer used.
Copied from Perforce
 Change: 192637
 ServerID: perforce.ravenbrook.com
2016-10-19 14:13:38 +01:00