[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
scratch/igc c0c1e8c54d4: igc.org: Lisp allocation, mention create_thread
From: |
Gerd Moellmann |
Subject: |
scratch/igc c0c1e8c54d4: igc.org: Lisp allocation, mention create_thread_aps |
Date: |
Fri, 27 Dec 2024 23:09:32 -0500 (EST) |
branch: scratch/igc
commit c0c1e8c54d4a5e6e22d0a8af073f4ca493480512
Author: Gerd Möllmann <gerd@gnu.org>
Commit: Gerd Möllmann <gerd@gnu.org>
igc.org: Lisp allocation, mention create_thread_aps
---
admin/igc.org | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/admin/igc.org b/admin/igc.org
index bb3fe5ca024..ce82fb8d1b4 100644
--- a/admin/igc.org
+++ b/admin/igc.org
@@ -209,7 +209,7 @@ registry.
- Pools. We tell MPS which pools we want to use, and what the object
formats are, i.e. which callbacks in Emacs MPS can use.
- Threads. We define which threads Emacs has, and add their C stacks
- as roots. This includes Emacs' main thread.
+ as roots.
- Roots. We tell MPS about the various roots in Emacs, the DEFVARs,
the byte code stack, staticpro, etc.
- ...
@@ -218,17 +218,21 @@ When we done all that, we tell MPS it can start doing its
job.
* Lisp Object Allocation
-All of Emacs' Lisp object allocation ultimately ends up done in igc's
-'alloc_impl' function.
+All of Emacs' Lisp object allocation ultimately ends up being done in
+igc's =alloc_impl= function.
MPS allocation from pools is thread-specific, using so-called
-"allocation points". These allocation points optimize allocation by
-reducing thread-contention. Allocation points are associated with
-pools, and there is one allocation point per thread.
+"allocation points" that are created and registered in the registry when
+we register a thread with MPS, via =create_thread_aps= and its
+subroutines.
-The function 'thread_ap' in igc determines which allocation point to
-use for the current thread and depending on the type of Lisp object
-to allocate.
+Allocation points optimize allocation by reducing
+thread-contention. Allocation points are associated with pools, and
+there is one allocation point per thread.
+
+The function =thread_ap= in igc determines which allocation point to use
+for the current thread and depending on the type of Lisp object to
+allocate.
* Malloc with roots
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- scratch/igc c0c1e8c54d4: igc.org: Lisp allocation, mention create_thread_aps,
Gerd Moellmann <=