mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-20 06:09:17 +02:00
299 lines
54 KiB
HTML
299 lines
54 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.13"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Cyclone Scheme: Major GC</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">Cyclone Scheme
|
|
 <span id="projectnumber">0.4</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.13 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">Data Structures</a> |
|
|
<a href="#define-members">Macros</a> |
|
|
<a href="#typedef-members">Typedefs</a> |
|
|
<a href="#enum-members">Enumerations</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">Major GC<div class="ingroups"><a class="el" href="group__gc.html">Garbage collection</a></div></div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Major GC is responsible for removing unused objects from the heap.
|
|
<a href="#details">More...</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
|
Data Structures</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgc__free__list__t.html">gc_free_list_t</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgc__header__type__t.html">gc_header_type_t</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgc__heap__root__t.html">gc_heap_root_t</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgc__heap__t.html">gc_heap_t</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgc__thread__data__t.html">gc_thread_data_t</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
|
Macros</h2></td></tr>
|
|
<tr class="memitem:gad09673fe7b5673515705b6a821648cbe"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gad09673fe7b5673515705b6a821648cbe.html#gad09673fe7b5673515705b6a821648cbe">DEBUG_SHOW_DIAG</a>   0</td></tr>
|
|
<tr class="separator:gad09673fe7b5673515705b6a821648cbe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga11081c291bf7b8ca714d6ba09e0912d7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga11081c291bf7b8ca714d6ba09e0912d7.html#ga11081c291bf7b8ca714d6ba09e0912d7">GC_COLLECTION_THRESHOLD</a>   0.05</td></tr>
|
|
<tr class="separator:ga11081c291bf7b8ca714d6ba09e0912d7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga21b50029124a435e12dd1fb97f1f4275"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga21b50029124a435e12dd1fb97f1f4275.html#ga21b50029124a435e12dd1fb97f1f4275">gc_color_blue</a>   2</td></tr>
|
|
<tr class="separator:ga21b50029124a435e12dd1fb97f1f4275"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga4074eefce64a43efc40de89bc9595c9b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga4074eefce64a43efc40de89bc9595c9b.html#ga4074eefce64a43efc40de89bc9595c9b">gc_color_red</a>   0</td></tr>
|
|
<tr class="separator:ga4074eefce64a43efc40de89bc9595c9b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga600c743cb3da304751627e36099445b9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga600c743cb3da304751627e36099445b9.html#ga600c743cb3da304751627e36099445b9">GC_DEBUG_SHOW_SWEEP_DIAG</a>   0</td></tr>
|
|
<tr class="separator:ga600c743cb3da304751627e36099445b9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaa64a151f71c793be3f27b6f70c8a98bd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gaa64a151f71c793be3f27b6f70c8a98bd.html#gaa64a151f71c793be3f27b6f70c8a98bd">GC_DEBUG_TRACE</a>   0</td></tr>
|
|
<tr class="separator:gaa64a151f71c793be3f27b6f70c8a98bd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga506d5fadc6ed572bbb11b122193ea36d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga506d5fadc6ed572bbb11b122193ea36d.html#ga506d5fadc6ed572bbb11b122193ea36d">GC_DEBUG_VERBOSE</a>   0</td></tr>
|
|
<tr class="separator:ga506d5fadc6ed572bbb11b122193ea36d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga7ca46159df2a2857a042f5b83b8903c4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga7ca46159df2a2857a042f5b83b8903c4.html#ga7ca46159df2a2857a042f5b83b8903c4">GC_FREE_THRESHOLD</a>   0.40</td></tr>
|
|
<tr class="separator:ga7ca46159df2a2857a042f5b83b8903c4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaac1a9d422fb7cf93b7de39bd41e0cad2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gaac1a9d422fb7cf93b7de39bd41e0cad2.html#gaac1a9d422fb7cf93b7de39bd41e0cad2">GC_SAFETY_CHECKS</a>   0</td></tr>
|
|
<tr class="separator:gaac1a9d422fb7cf93b7de39bd41e0cad2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaf98d32e8f592dc38f4cd01c153e91a2d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gaf98d32e8f592dc38f4cd01c153e91a2d.html#gaf98d32e8f592dc38f4cd01c153e91a2d">grayed</a>(x)   (((<a class="el" href="group__objects_gaa17fa155c777becaffb49f920070e2c6.html#gaa17fa155c777becaffb49f920070e2c6">list</a>) x)->hdr.grayed)</td></tr>
|
|
<tr class="separator:gaf98d32e8f592dc38f4cd01c153e91a2d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga91caaa8e3c877e2780b365e593bbfef9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga91caaa8e3c877e2780b365e593bbfef9.html#ga91caaa8e3c877e2780b365e593bbfef9">GROW_HEAP_BY_SIZE</a>   (2 * 1024 * 1024)</td></tr>
|
|
<tr class="separator:ga91caaa8e3c877e2780b365e593bbfef9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga1b45302695680930829cac31d65e41e1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga1b45302695680930829cac31d65e41e1.html#ga1b45302695680930829cac31d65e41e1">HEAP_SIZE</a>   (32 * 1024 * 1024)</td></tr>
|
|
<tr class="separator:ga1b45302695680930829cac31d65e41e1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga9427b1684a8ab0eba8315606d67709ed"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga9427b1684a8ab0eba8315606d67709ed.html#ga9427b1684a8ab0eba8315606d67709ed">INITIAL_HEAP_SIZE</a>   (3 * 1024 * 1024)</td></tr>
|
|
<tr class="separator:ga9427b1684a8ab0eba8315606d67709ed"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga24af05ed1aef52dcba9177511705682d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga24af05ed1aef52dcba9177511705682d.html#ga24af05ed1aef52dcba9177511705682d">mark</a>(x)   (((<a class="el" href="group__objects_gaa17fa155c777becaffb49f920070e2c6.html#gaa17fa155c777becaffb49f920070e2c6">list</a>) x)->hdr.mark)</td></tr>
|
|
<tr class="separator:ga24af05ed1aef52dcba9177511705682d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gabdf15a8d52624122c76c2ae9df4a3cdc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gabdf15a8d52624122c76c2ae9df4a3cdc.html#gabdf15a8d52624122c76c2ae9df4a3cdc">MAX_STACK_TRACES</a>   10</td></tr>
|
|
<tr class="separator:gabdf15a8d52624122c76c2ae9df4a3cdc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga969e0c6129a50134006fe4b380965cb2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga969e0c6129a50134006fe4b380965cb2.html#ga969e0c6129a50134006fe4b380965cb2">NANOSECONDS_PER_MILLISECOND</a>   1000000</td></tr>
|
|
<tr class="separator:ga969e0c6129a50134006fe4b380965cb2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga9dc80c9089068607718ad99e9cd77fcc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga9dc80c9089068607718ad99e9cd77fcc.html#ga9dc80c9089068607718ad99e9cd77fcc">NUM_HEAP_TYPES</a>   (<a class="el" href="group__gc__major_ga66382faf126033f74c62e4eb8a4c4cbe.html#gga66382faf126033f74c62e4eb8a4c4cbea5797bddcdba7ed39b47ad53818368c7e">HEAP_HUGE</a> + 1)</td></tr>
|
|
<tr class="separator:ga9dc80c9089068607718ad99e9cd77fcc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga08c98f6a7999fcdcde8c21344cd51d63"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga08c98f6a7999fcdcde8c21344cd51d63.html#ga08c98f6a7999fcdcde8c21344cd51d63">return_thread_runnable</a>(d, r)   <a class="el" href="group__gc__major_gae43e9fb0564edc5ecf489ead57731d52.html#gae43e9fb0564edc5ecf489ead57731d52">gc_mutator_thread_runnable</a>(((<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *)d), (r))</td></tr>
|
|
<tr class="separator:ga08c98f6a7999fcdcde8c21344cd51d63"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gadb0efe9a5fa3686ffe062cb1ce16f8c1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gadb0efe9a5fa3686ffe062cb1ce16f8c1.html#gadb0efe9a5fa3686ffe062cb1ce16f8c1">set_thread_blocked</a>(d, c)   <a class="el" href="group__gc__major_gadf94b852782bd0108138e3b97fc1113b.html#gadf94b852782bd0108138e3b97fc1113b">gc_mutator_thread_blocked</a>(((<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *)d), (c))</td></tr>
|
|
<tr class="separator:gadb0efe9a5fa3686ffe062cb1ce16f8c1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
|
Typedefs</h2></td></tr>
|
|
<tr class="memitem:gafcdb2c9fc0d53c3b0971b6fe85916858"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgc__free__list__t.html">gc_free_list_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gafcdb2c9fc0d53c3b0971b6fe85916858.html#gafcdb2c9fc0d53c3b0971b6fe85916858">gc_free_list</a></td></tr>
|
|
<tr class="separator:gafcdb2c9fc0d53c3b0971b6fe85916858"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gafa9a2390e7f946a0526be8c21d3ec864"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgc__header__type__t.html">gc_header_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gafa9a2390e7f946a0526be8c21d3ec864.html#gafa9a2390e7f946a0526be8c21d3ec864">gc_header_type</a></td></tr>
|
|
<tr class="separator:gafa9a2390e7f946a0526be8c21d3ec864"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga734c99799a64ad0450ca6879900640f5"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgc__heap__t.html">gc_heap_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a></td></tr>
|
|
<tr class="separator:ga734c99799a64ad0450ca6879900640f5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga61dd942ed84e904a5c297fdc57fd4d7a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgc__heap__root__t.html">gc_heap_root_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga61dd942ed84e904a5c297fdc57fd4d7a.html#ga61dd942ed84e904a5c297fdc57fd4d7a">gc_heap_root</a></td></tr>
|
|
<tr class="separator:ga61dd942ed84e904a5c297fdc57fd4d7a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gad107cf5b38c74e2cd84a8159940b6579"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgc__thread__data__t.html">gc_thread_data_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a></td></tr>
|
|
<tr class="memdesc:gad107cf5b38c74e2cd84a8159940b6579"><td class="mdescLeft"> </td><td class="mdescRight">Each thread is given an instance of this struct to maintain its state. <a href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">More...</a><br /></td></tr>
|
|
<tr class="separator:gad107cf5b38c74e2cd84a8159940b6579"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:ga197294109a9a037b9a6641ce41ff9608"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga197294109a9a037b9a6641ce41ff9608.html#ga197294109a9a037b9a6641ce41ff9608">cyc_thread_state_type</a> { <br />
|
|
  <a class="el" href="group__gc__major_ga197294109a9a037b9a6641ce41ff9608.html#gga197294109a9a037b9a6641ce41ff9608ae801c4895e2838d02b40c48a2c882d3d">CYC_THREAD_STATE_NEW</a>,
|
|
<a class="el" href="group__gc__major_ga197294109a9a037b9a6641ce41ff9608.html#gga197294109a9a037b9a6641ce41ff9608a295a92132ba685f05ef1c3aed475588a">CYC_THREAD_STATE_RUNNABLE</a>,
|
|
<a class="el" href="group__gc__major_ga197294109a9a037b9a6641ce41ff9608.html#gga197294109a9a037b9a6641ce41ff9608af3d009c1c2e70c4a7458905c5be67565">CYC_THREAD_STATE_BLOCKED</a>,
|
|
<a class="el" href="group__gc__major_ga197294109a9a037b9a6641ce41ff9608.html#gga197294109a9a037b9a6641ce41ff9608ab31c8a0312744afb1a88aaac239008ce">CYC_THREAD_STATE_BLOCKED_COOPERATING</a>,
|
|
<br />
|
|
  <a class="el" href="group__gc__major_ga197294109a9a037b9a6641ce41ff9608.html#gga197294109a9a037b9a6641ce41ff9608ab739f1f23f93d91f85e31ab79eb247ae">CYC_THREAD_STATE_TERMINATED</a>
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="separator:ga197294109a9a037b9a6641ce41ff9608"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga66382faf126033f74c62e4eb8a4c4cbe"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga66382faf126033f74c62e4eb8a4c4cbe.html#ga66382faf126033f74c62e4eb8a4c4cbe">gc_heap_type</a> { <br />
|
|
  <a class="el" href="group__gc__major_ga66382faf126033f74c62e4eb8a4c4cbe.html#gga66382faf126033f74c62e4eb8a4c4cbea523741d779967e10cf8bd7e79bcbc531">HEAP_SM</a> = 0,
|
|
<a class="el" href="group__gc__major_ga66382faf126033f74c62e4eb8a4c4cbe.html#gga66382faf126033f74c62e4eb8a4c4cbea30669e01157b01fcedf47cdb1eeb1b66">HEAP_64</a>,
|
|
<a class="el" href="group__gc__major_ga66382faf126033f74c62e4eb8a4c4cbe.html#gga66382faf126033f74c62e4eb8a4c4cbeada416a085ae859600e873544c0c44f3e">HEAP_96</a>,
|
|
<a class="el" href="group__gc__major_ga66382faf126033f74c62e4eb8a4c4cbe.html#gga66382faf126033f74c62e4eb8a4c4cbea773ac24f76a2d433c8e6098ebdf415d9">HEAP_REST</a>,
|
|
<br />
|
|
  <a class="el" href="group__gc__major_ga66382faf126033f74c62e4eb8a4c4cbe.html#gga66382faf126033f74c62e4eb8a4c4cbea5797bddcdba7ed39b47ad53818368c7e">HEAP_HUGE</a>
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="separator:ga66382faf126033f74c62e4eb8a4c4cbe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga0a33ee3f5c77cf4b03b37e0ba3308070"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga0a33ee3f5c77cf4b03b37e0ba3308070.html#ga0a33ee3f5c77cf4b03b37e0ba3308070">gc_stage_type</a> { <a class="el" href="group__gc__major_ga0a33ee3f5c77cf4b03b37e0ba3308070.html#gga0a33ee3f5c77cf4b03b37e0ba3308070a01952e3d500adf25ade20112956ad2cf">STAGE_CLEAR_OR_MARKING</a>,
|
|
<a class="el" href="group__gc__major_ga0a33ee3f5c77cf4b03b37e0ba3308070.html#gga0a33ee3f5c77cf4b03b37e0ba3308070a8e2072b44f465556415a63ecac4e1c5a">STAGE_TRACING</a>,
|
|
<a class="el" href="group__gc__major_ga0a33ee3f5c77cf4b03b37e0ba3308070.html#gga0a33ee3f5c77cf4b03b37e0ba3308070a3249a542464046f6893c72d16ebbd07a">STAGE_SWEEPING</a>,
|
|
<a class="el" href="group__gc__major_ga0a33ee3f5c77cf4b03b37e0ba3308070.html#gga0a33ee3f5c77cf4b03b37e0ba3308070a29d42023d07b3d4742b01ade8082bdf1">STAGE_RESTING</a>
|
|
}</td></tr>
|
|
<tr class="separator:ga0a33ee3f5c77cf4b03b37e0ba3308070"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga75b3fd7dd320d8524d0dcad79cc1eb1e"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga75b3fd7dd320d8524d0dcad79cc1eb1e.html#ga75b3fd7dd320d8524d0dcad79cc1eb1e">gc_status_type</a> { <a class="el" href="group__gc__major_ga75b3fd7dd320d8524d0dcad79cc1eb1e.html#gga75b3fd7dd320d8524d0dcad79cc1eb1ea264e5564774fdb4ca4947229ef0672e3">STATUS_ASYNC</a>,
|
|
<a class="el" href="group__gc__major_ga75b3fd7dd320d8524d0dcad79cc1eb1e.html#gga75b3fd7dd320d8524d0dcad79cc1eb1ea41ef37adaff8b2d3309d22b0de8536b4">STATUS_SYNC1</a>,
|
|
<a class="el" href="group__gc__major_ga75b3fd7dd320d8524d0dcad79cc1eb1e.html#gga75b3fd7dd320d8524d0dcad79cc1eb1ead597bf3a8cd24ac6fd2adf6a0518e38e">STATUS_SYNC2</a>
|
|
}</td></tr>
|
|
<tr class="separator:ga75b3fd7dd320d8524d0dcad79cc1eb1e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:gadd82bcff4895bd4ca335a45109597102"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gadd82bcff4895bd4ca335a45109597102.html#gadd82bcff4895bd4ca335a45109597102">gc_add_mutator</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd)</td></tr>
|
|
<tr class="memdesc:gadd82bcff4895bd4ca335a45109597102"><td class="mdescLeft"> </td><td class="mdescRight">Add data for a new mutator. <a href="group__gc__major_gadd82bcff4895bd4ca335a45109597102.html#gadd82bcff4895bd4ca335a45109597102">More...</a><br /></td></tr>
|
|
<tr class="separator:gadd82bcff4895bd4ca335a45109597102"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga976021ebdbed6eb538d78c744c1ef931"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga976021ebdbed6eb538d78c744c1ef931.html#ga976021ebdbed6eb538d78c744c1ef931">gc_alloc</a> (<a class="el" href="group__gc__major_ga61dd942ed84e904a5c297fdc57fd4d7a.html#ga61dd942ed84e904a5c297fdc57fd4d7a">gc_heap_root</a> *h, size_t size, char *obj, <a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd, int *heap_grown)</td></tr>
|
|
<tr class="memdesc:ga976021ebdbed6eb538d78c744c1ef931"><td class="mdescLeft"> </td><td class="mdescRight">Allocate memory on the heap for an object. <a href="group__gc__major_ga976021ebdbed6eb538d78c744c1ef931.html#ga976021ebdbed6eb538d78c744c1ef931">More...</a><br /></td></tr>
|
|
<tr class="separator:ga976021ebdbed6eb538d78c744c1ef931"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaec0fd25a5b345b9ad50842b08bed4027"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gaec0fd25a5b345b9ad50842b08bed4027.html#gaec0fd25a5b345b9ad50842b08bed4027">gc_alloc_bignum</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *data)</td></tr>
|
|
<tr class="memdesc:gaec0fd25a5b345b9ad50842b08bed4027"><td class="mdescLeft"> </td><td class="mdescRight">A convenience function for allocating bignums. <a href="group__gc__major_gaec0fd25a5b345b9ad50842b08bed4027.html#gaec0fd25a5b345b9ad50842b08bed4027">More...</a><br /></td></tr>
|
|
<tr class="separator:gaec0fd25a5b345b9ad50842b08bed4027"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga2f62288e6f57fe9fbff4bae5bd782e44"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga2f62288e6f57fe9fbff4bae5bd782e44.html#ga2f62288e6f57fe9fbff4bae5bd782e44">gc_allocated_bytes</a> (<a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> obj, <a class="el" href="group__gc__major_gafcdb2c9fc0d53c3b0971b6fe85916858.html#gafcdb2c9fc0d53c3b0971b6fe85916858">gc_free_list</a> *q, <a class="el" href="group__gc__major_gafcdb2c9fc0d53c3b0971b6fe85916858.html#gafcdb2c9fc0d53c3b0971b6fe85916858">gc_free_list</a> *r)</td></tr>
|
|
<tr class="memdesc:ga2f62288e6f57fe9fbff4bae5bd782e44"><td class="mdescLeft"> </td><td class="mdescRight">Get the number of bytes that will be allocated for <code>obj</code>. <a href="group__gc__major_ga2f62288e6f57fe9fbff4bae5bd782e44.html#ga2f62288e6f57fe9fbff4bae5bd782e44">More...</a><br /></td></tr>
|
|
<tr class="separator:ga2f62288e6f57fe9fbff4bae5bd782e44"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gadd73c9a0b9b1112d6d941dee642893e7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gadd73c9a0b9b1112d6d941dee642893e7.html#gadd73c9a0b9b1112d6d941dee642893e7">gc_collector_trace</a> ()</td></tr>
|
|
<tr class="memdesc:gadd73c9a0b9b1112d6d941dee642893e7"><td class="mdescLeft"> </td><td class="mdescRight">The collector's tracing algorithm. <a href="group__gc__major_gadd73c9a0b9b1112d6d941dee642893e7.html#gadd73c9a0b9b1112d6d941dee642893e7">More...</a><br /></td></tr>
|
|
<tr class="separator:gadd73c9a0b9b1112d6d941dee642893e7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga15186c504a0fb0727cd7d405b0b2d9a5"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga15186c504a0fb0727cd7d405b0b2d9a5.html#ga15186c504a0fb0727cd7d405b0b2d9a5">gc_copy_obj</a> (<a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> hp, char *obj, <a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd)</td></tr>
|
|
<tr class="memdesc:ga15186c504a0fb0727cd7d405b0b2d9a5"><td class="mdescLeft"> </td><td class="mdescRight">Copy given object into given heap object. <a href="group__gc__major_ga15186c504a0fb0727cd7d405b0b2d9a5.html#ga15186c504a0fb0727cd7d405b0b2d9a5">More...</a><br /></td></tr>
|
|
<tr class="separator:ga15186c504a0fb0727cd7d405b0b2d9a5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga4c76104f4bb633c0594334508f8a19b1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga4c76104f4bb633c0594334508f8a19b1.html#ga4c76104f4bb633c0594334508f8a19b1">gc_empty_collector_stack</a> ()</td></tr>
|
|
<tr class="memdesc:ga4c76104f4bb633c0594334508f8a19b1"><td class="mdescLeft"> </td><td class="mdescRight">Empty the collector's mark stack. <a href="group__gc__major_ga4c76104f4bb633c0594334508f8a19b1.html#ga4c76104f4bb633c0594334508f8a19b1">More...</a><br /></td></tr>
|
|
<tr class="separator:ga4c76104f4bb633c0594334508f8a19b1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gacc34220240fa78aaed5482565c8952e6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gacc34220240fa78aaed5482565c8952e6.html#gacc34220240fa78aaed5482565c8952e6">gc_grow_heap</a> (<a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *h, int heap_type, size_t size, size_t chunk_size, <a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd)</td></tr>
|
|
<tr class="memdesc:gacc34220240fa78aaed5482565c8952e6"><td class="mdescLeft"> </td><td class="mdescRight">Grow a heap by allocating a new page. <a href="group__gc__major_gacc34220240fa78aaed5482565c8952e6.html#gacc34220240fa78aaed5482565c8952e6">More...</a><br /></td></tr>
|
|
<tr class="separator:gacc34220240fa78aaed5482565c8952e6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga20cf7c4fac92c3cb1adb025813ea2a99"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga20cf7c4fac92c3cb1adb025813ea2a99.html#ga20cf7c4fac92c3cb1adb025813ea2a99">gc_handshake</a> (<a class="el" href="group__gc__major_ga75b3fd7dd320d8524d0dcad79cc1eb1e.html#ga75b3fd7dd320d8524d0dcad79cc1eb1e">gc_status_type</a> s)</td></tr>
|
|
<tr class="memdesc:ga20cf7c4fac92c3cb1adb025813ea2a99"><td class="mdescLeft"> </td><td class="mdescRight">Called by the collector thread to perform a handshake with all of the mutators. <a href="group__gc__major_ga20cf7c4fac92c3cb1adb025813ea2a99.html#ga20cf7c4fac92c3cb1adb025813ea2a99">More...</a><br /></td></tr>
|
|
<tr class="separator:ga20cf7c4fac92c3cb1adb025813ea2a99"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga977b02989cc5091ac256ca154f5e78ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga977b02989cc5091ac256ca154f5e78ee.html#ga977b02989cc5091ac256ca154f5e78ee">gc_heap_create</a> (int heap_type, size_t size, size_t max_size, size_t chunk_size, <a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd)</td></tr>
|
|
<tr class="memdesc:ga977b02989cc5091ac256ca154f5e78ee"><td class="mdescLeft"> </td><td class="mdescRight">Create a new heap page. The caller must hold the necessary locks. <a href="group__gc__major_ga977b02989cc5091ac256ca154f5e78ee.html#ga977b02989cc5091ac256ca154f5e78ee">More...</a><br /></td></tr>
|
|
<tr class="separator:ga977b02989cc5091ac256ca154f5e78ee"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gab4c9dba3c0f373c7a74e89e35b919fe8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gab4c9dba3c0f373c7a74e89e35b919fe8.html#gab4c9dba3c0f373c7a74e89e35b919fe8">gc_heap_free</a> (<a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *page, <a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *prev_page)</td></tr>
|
|
<tr class="memdesc:gab4c9dba3c0f373c7a74e89e35b919fe8"><td class="mdescLeft"> </td><td class="mdescRight">Free a page of the heap. <a href="group__gc__major_gab4c9dba3c0f373c7a74e89e35b919fe8.html#gab4c9dba3c0f373c7a74e89e35b919fe8">More...</a><br /></td></tr>
|
|
<tr class="separator:gab4c9dba3c0f373c7a74e89e35b919fe8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga7f1dfa939185ca0cf6d194c991000185"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga7f1dfa939185ca0cf6d194c991000185.html#ga7f1dfa939185ca0cf6d194c991000185">gc_heap_last</a> (<a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *h)</td></tr>
|
|
<tr class="memdesc:ga7f1dfa939185ca0cf6d194c991000185"><td class="mdescLeft"> </td><td class="mdescRight">Get the heap's last page. <a href="group__gc__major_ga7f1dfa939185ca0cf6d194c991000185.html#ga7f1dfa939185ca0cf6d194c991000185">More...</a><br /></td></tr>
|
|
<tr class="separator:ga7f1dfa939185ca0cf6d194c991000185"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gabebf61106ee21a438dcb21fc8a9fb05b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gabebf61106ee21a438dcb21fc8a9fb05b.html#gabebf61106ee21a438dcb21fc8a9fb05b">gc_heap_merge</a> (<a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *hdest, <a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *hsrc)</td></tr>
|
|
<tr class="memdesc:gabebf61106ee21a438dcb21fc8a9fb05b"><td class="mdescLeft"> </td><td class="mdescRight">Merge one heap into another. <a href="group__gc__major_gabebf61106ee21a438dcb21fc8a9fb05b.html#gabebf61106ee21a438dcb21fc8a9fb05b">More...</a><br /></td></tr>
|
|
<tr class="separator:gabebf61106ee21a438dcb21fc8a9fb05b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gac5dc8552660d7975bbdf83c59e6c5dd3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gac5dc8552660d7975bbdf83c59e6c5dd3.html#gac5dc8552660d7975bbdf83c59e6c5dd3">gc_init_heap</a> (long heap_size)</td></tr>
|
|
<tr class="memdesc:gac5dc8552660d7975bbdf83c59e6c5dd3"><td class="mdescLeft"> </td><td class="mdescRight">Perform one-time heap initializations for the program. <a href="group__gc__major_gac5dc8552660d7975bbdf83c59e6c5dd3.html#gac5dc8552660d7975bbdf83c59e6c5dd3">More...</a><br /></td></tr>
|
|
<tr class="separator:gac5dc8552660d7975bbdf83c59e6c5dd3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga21e9a50a7de06a81cbcc934bd8e4809c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga21e9a50a7de06a81cbcc934bd8e4809c.html#ga21e9a50a7de06a81cbcc934bd8e4809c">gc_initialize</a> (void)</td></tr>
|
|
<tr class="memdesc:ga21e9a50a7de06a81cbcc934bd8e4809c"><td class="mdescLeft"> </td><td class="mdescRight">Perform one-time initialization before mutators can be executed. <a href="group__gc__major_ga21e9a50a7de06a81cbcc934bd8e4809c.html#ga21e9a50a7de06a81cbcc934bd8e4809c">More...</a><br /></td></tr>
|
|
<tr class="separator:ga21e9a50a7de06a81cbcc934bd8e4809c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga6490c2be516744d1cdc225b9ef2688ca"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga6490c2be516744d1cdc225b9ef2688ca.html#ga6490c2be516744d1cdc225b9ef2688ca">gc_is_stack_obj</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd, <a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> obj)</td></tr>
|
|
<tr class="memdesc:ga6490c2be516744d1cdc225b9ef2688ca"><td class="mdescLeft"> </td><td class="mdescRight">Determine if object lives on the thread's stack. <a href="group__gc__major_ga6490c2be516744d1cdc225b9ef2688ca.html#ga6490c2be516744d1cdc225b9ef2688ca">More...</a><br /></td></tr>
|
|
<tr class="separator:ga6490c2be516744d1cdc225b9ef2688ca"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gabbaa9e82df175595165b5309ffb360b5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gabbaa9e82df175595165b5309ffb360b5.html#gabbaa9e82df175595165b5309ffb360b5">gc_mark_globals</a> (<a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> globals, <a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> <a class="el" href="group__prim__glo_gac52bad1e086d5f0dc519027ea19f32c4.html#gac52bad1e086d5f0dc519027ea19f32c4">global_table</a>)</td></tr>
|
|
<tr class="memdesc:gabbaa9e82df175595165b5309ffb360b5"><td class="mdescLeft"> </td><td class="mdescRight">Mark globals as part of the tracing collector. <a href="group__gc__major_gabbaa9e82df175595165b5309ffb360b5.html#gabbaa9e82df175595165b5309ffb360b5">More...</a><br /></td></tr>
|
|
<tr class="separator:gabbaa9e82df175595165b5309ffb360b5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaa8776e5cc0c3bf309c76dc61f0c7f838"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gaa8776e5cc0c3bf309c76dc61f0c7f838.html#gaa8776e5cc0c3bf309c76dc61f0c7f838">gc_mark_gray</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd, <a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> obj)</td></tr>
|
|
<tr class="memdesc:gaa8776e5cc0c3bf309c76dc61f0c7f838"><td class="mdescLeft"> </td><td class="mdescRight">Mark the given object gray if it is on the heap. <a href="group__gc__major_gaa8776e5cc0c3bf309c76dc61f0c7f838.html#gaa8776e5cc0c3bf309c76dc61f0c7f838">More...</a><br /></td></tr>
|
|
<tr class="separator:gaa8776e5cc0c3bf309c76dc61f0c7f838"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga7fac46df80136375f0aabd3af30a8874"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga7fac46df80136375f0aabd3af30a8874.html#ga7fac46df80136375f0aabd3af30a8874">gc_mark_gray2</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd, <a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> obj)</td></tr>
|
|
<tr class="memdesc:ga7fac46df80136375f0aabd3af30a8874"><td class="mdescLeft"> </td><td class="mdescRight">Add a pending write to the mark buffer. <a href="group__gc__major_ga7fac46df80136375f0aabd3af30a8874.html#ga7fac46df80136375f0aabd3af30a8874">More...</a><br /></td></tr>
|
|
<tr class="separator:ga7fac46df80136375f0aabd3af30a8874"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga2031d7ff5d1678d2aa7954c5fa3b989e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga2031d7ff5d1678d2aa7954c5fa3b989e.html#ga2031d7ff5d1678d2aa7954c5fa3b989e">gc_merge_all_heaps</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *dest, <a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *src)</td></tr>
|
|
<tr class="memdesc:ga2031d7ff5d1678d2aa7954c5fa3b989e"><td class="mdescLeft"> </td><td class="mdescRight">Merge all thread heaps into another. <a href="group__gc__major_ga2031d7ff5d1678d2aa7954c5fa3b989e.html#ga2031d7ff5d1678d2aa7954c5fa3b989e">More...</a><br /></td></tr>
|
|
<tr class="separator:ga2031d7ff5d1678d2aa7954c5fa3b989e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga6a88578b8802b9bca9f56e0ccfdff435"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga6a88578b8802b9bca9f56e0ccfdff435.html#ga6a88578b8802b9bca9f56e0ccfdff435">gc_mut_cooperate</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd, int buf_len)</td></tr>
|
|
<tr class="memdesc:ga6a88578b8802b9bca9f56e0ccfdff435"><td class="mdescLeft"> </td><td class="mdescRight">Called by a mutator to cooperate with the collector thread. <a href="group__gc__major_ga6a88578b8802b9bca9f56e0ccfdff435.html#ga6a88578b8802b9bca9f56e0ccfdff435">More...</a><br /></td></tr>
|
|
<tr class="separator:ga6a88578b8802b9bca9f56e0ccfdff435"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaa1745070eb682d926f656f3017ccedda"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gaa1745070eb682d926f656f3017ccedda.html#gaa1745070eb682d926f656f3017ccedda">gc_mut_update</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd, <a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> old_obj, <a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> value)</td></tr>
|
|
<tr class="memdesc:gaa1745070eb682d926f656f3017ccedda"><td class="mdescLeft"> </td><td class="mdescRight">Write barrier for updates to heap-allocated objects. <a href="group__gc__major_gaa1745070eb682d926f656f3017ccedda.html#gaa1745070eb682d926f656f3017ccedda">More...</a><br /></td></tr>
|
|
<tr class="separator:gaa1745070eb682d926f656f3017ccedda"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gadf94b852782bd0108138e3b97fc1113b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gadf94b852782bd0108138e3b97fc1113b.html#gadf94b852782bd0108138e3b97fc1113b">gc_mutator_thread_blocked</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd, <a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> cont)</td></tr>
|
|
<tr class="memdesc:gadf94b852782bd0108138e3b97fc1113b"><td class="mdescLeft"> </td><td class="mdescRight">Called explicitly from a mutator thread to let the collector know it (may) block for an unknown period of time. <a href="group__gc__major_gadf94b852782bd0108138e3b97fc1113b.html#gadf94b852782bd0108138e3b97fc1113b">More...</a><br /></td></tr>
|
|
<tr class="separator:gadf94b852782bd0108138e3b97fc1113b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gae43e9fb0564edc5ecf489ead57731d52"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gae43e9fb0564edc5ecf489ead57731d52.html#gae43e9fb0564edc5ecf489ead57731d52">gc_mutator_thread_runnable</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd, <a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> result)</td></tr>
|
|
<tr class="memdesc:gae43e9fb0564edc5ecf489ead57731d52"><td class="mdescLeft"> </td><td class="mdescRight">Called explicitly from a mutator thread to let the collector know that it has finished blocking. <a href="group__gc__major_gae43e9fb0564edc5ecf489ead57731d52.html#gae43e9fb0564edc5ecf489ead57731d52">More...</a><br /></td></tr>
|
|
<tr class="separator:gae43e9fb0564edc5ecf489ead57731d52"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga63112677a59a58464bc08d5ef2a91c6c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga63112677a59a58464bc08d5ef2a91c6c.html#ga63112677a59a58464bc08d5ef2a91c6c">gc_post_handshake</a> (<a class="el" href="group__gc__major_ga75b3fd7dd320d8524d0dcad79cc1eb1e.html#ga75b3fd7dd320d8524d0dcad79cc1eb1e">gc_status_type</a> s)</td></tr>
|
|
<tr class="memdesc:ga63112677a59a58464bc08d5ef2a91c6c"><td class="mdescLeft"> </td><td class="mdescRight">Change GC status to the given type. <a href="group__gc__major_ga63112677a59a58464bc08d5ef2a91c6c.html#ga63112677a59a58464bc08d5ef2a91c6c">More...</a><br /></td></tr>
|
|
<tr class="separator:ga63112677a59a58464bc08d5ef2a91c6c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga2118e3b31300a7ddcd96c95e218f862e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga2118e3b31300a7ddcd96c95e218f862e.html#ga2118e3b31300a7ddcd96c95e218f862e">gc_print_stats</a> (<a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *h)</td></tr>
|
|
<tr class="memdesc:ga2118e3b31300a7ddcd96c95e218f862e"><td class="mdescLeft"> </td><td class="mdescRight">Print heap usage information. Before calling this function the current thread must have the heap lock. <a href="group__gc__major_ga2118e3b31300a7ddcd96c95e218f862e.html#ga2118e3b31300a7ddcd96c95e218f862e">More...</a><br /></td></tr>
|
|
<tr class="separator:ga2118e3b31300a7ddcd96c95e218f862e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga1091a8b18fc274af25f5155e3bf7a1ff"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga1091a8b18fc274af25f5155e3bf7a1ff.html#ga1091a8b18fc274af25f5155e3bf7a1ff">gc_remove_mutator</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd)</td></tr>
|
|
<tr class="memdesc:ga1091a8b18fc274af25f5155e3bf7a1ff"><td class="mdescLeft"> </td><td class="mdescRight">Remove selected mutator from the mutator list. This is done for terminated threads. Note data is queued to be freed, to prevent accidentally freeing it while the collector thread is potentially accessing it. <a href="group__gc__major_ga1091a8b18fc274af25f5155e3bf7a1ff.html#ga1091a8b18fc274af25f5155e3bf7a1ff">More...</a><br /></td></tr>
|
|
<tr class="separator:ga1091a8b18fc274af25f5155e3bf7a1ff"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gae4b0fc6e4b949f950ecf85d3135bfd9a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gae4b0fc6e4b949f950ecf85d3135bfd9a.html#gae4b0fc6e4b949f950ecf85d3135bfd9a">gc_request_mark_globals</a> (void)</td></tr>
|
|
<tr class="separator:gae4b0fc6e4b949f950ecf85d3135bfd9a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gacdd780abddd9b089bc19771035890bf5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gacdd780abddd9b089bc19771035890bf5.html#gacdd780abddd9b089bc19771035890bf5">gc_start_collector</a> ()</td></tr>
|
|
<tr class="memdesc:gacdd780abddd9b089bc19771035890bf5"><td class="mdescLeft"> </td><td class="mdescRight">Spawn the collector thread. <a href="group__gc__major_gacdd780abddd9b089bc19771035890bf5.html#gacdd780abddd9b089bc19771035890bf5">More...</a><br /></td></tr>
|
|
<tr class="separator:gacdd780abddd9b089bc19771035890bf5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gab19d274a8cfbf5274db73e35f2fb18b5"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gab19d274a8cfbf5274db73e35f2fb18b5.html#gab19d274a8cfbf5274db73e35f2fb18b5">gc_sweep</a> (<a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *h, int heap_type, size_t *sum_freed_ptr, <a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd)</td></tr>
|
|
<tr class="memdesc:gab19d274a8cfbf5274db73e35f2fb18b5"><td class="mdescLeft"> </td><td class="mdescRight">Sweep portion of the GC algorithm. <a href="group__gc__major_gab19d274a8cfbf5274db73e35f2fb18b5.html#gab19d274a8cfbf5274db73e35f2fb18b5">More...</a><br /></td></tr>
|
|
<tr class="separator:gab19d274a8cfbf5274db73e35f2fb18b5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga34834cdbd4e4f511ad8e918f0fb2d765"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga34834cdbd4e4f511ad8e918f0fb2d765.html#ga34834cdbd4e4f511ad8e918f0fb2d765">gc_thr_add_to_move_buffer</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *d, int *alloci, <a class="el" href="group__objects_ga71301352e6ef9a0fcf7b0a8bae72c535.html#ga71301352e6ef9a0fcf7b0a8bae72c535">object</a> obj)</td></tr>
|
|
<tr class="memdesc:ga34834cdbd4e4f511ad8e918f0fb2d765"><td class="mdescLeft"> </td><td class="mdescRight">Add an object to the move buffer. <a href="group__gc__major_ga34834cdbd4e4f511ad8e918f0fb2d765.html#ga34834cdbd4e4f511ad8e918f0fb2d765">More...</a><br /></td></tr>
|
|
<tr class="separator:ga34834cdbd4e4f511ad8e918f0fb2d765"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga46bc54c66f56b0006420ce310c2729c1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga46bc54c66f56b0006420ce310c2729c1.html#ga46bc54c66f56b0006420ce310c2729c1">gc_thr_grow_move_buffer</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *d)</td></tr>
|
|
<tr class="memdesc:ga46bc54c66f56b0006420ce310c2729c1"><td class="mdescLeft"> </td><td class="mdescRight">Increase the size of the mutator's move buffer. <a href="group__gc__major_ga46bc54c66f56b0006420ce310c2729c1.html#ga46bc54c66f56b0006420ce310c2729c1">More...</a><br /></td></tr>
|
|
<tr class="separator:ga46bc54c66f56b0006420ce310c2729c1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gabf9a3adddd986f1f953d4ddc1c795491"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_gabf9a3adddd986f1f953d4ddc1c795491.html#gabf9a3adddd986f1f953d4ddc1c795491">gc_thread_data_free</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd)</td></tr>
|
|
<tr class="memdesc:gabf9a3adddd986f1f953d4ddc1c795491"><td class="mdescLeft"> </td><td class="mdescRight">Free all data for the given mutator. <a href="group__gc__major_gabf9a3adddd986f1f953d4ddc1c795491.html#gabf9a3adddd986f1f953d4ddc1c795491">More...</a><br /></td></tr>
|
|
<tr class="separator:gabf9a3adddd986f1f953d4ddc1c795491"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga9c86247beb6521f42271c87685c41288"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga9c86247beb6521f42271c87685c41288.html#ga9c86247beb6521f42271c87685c41288">gc_thread_data_init</a> (<a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd, int mut_num, char *stack_base, long stack_size)</td></tr>
|
|
<tr class="memdesc:ga9c86247beb6521f42271c87685c41288"><td class="mdescLeft"> </td><td class="mdescRight">Initialize runtime data structures for a thread. <a href="group__gc__major_ga9c86247beb6521f42271c87685c41288.html#ga9c86247beb6521f42271c87685c41288">More...</a><br /></td></tr>
|
|
<tr class="separator:ga9c86247beb6521f42271c87685c41288"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga6934bc689d9c64df40d96fbd4db8cbd7"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga6934bc689d9c64df40d96fbd4db8cbd7.html#ga6934bc689d9c64df40d96fbd4db8cbd7">gc_try_alloc</a> (<a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *h, int heap_type, size_t size, char *obj, <a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *thd)</td></tr>
|
|
<tr class="memdesc:ga6934bc689d9c64df40d96fbd4db8cbd7"><td class="mdescLeft"> </td><td class="mdescRight">Attempt to allocate a new heap slot for the given object. <a href="group__gc__major_ga6934bc689d9c64df40d96fbd4db8cbd7.html#ga6934bc689d9c64df40d96fbd4db8cbd7">More...</a><br /></td></tr>
|
|
<tr class="separator:ga6934bc689d9c64df40d96fbd4db8cbd7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga51690b332091995ffd5c7318f569f934"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gc__major_ga51690b332091995ffd5c7318f569f934.html#ga51690b332091995ffd5c7318f569f934">gc_wait_handshake</a> ()</td></tr>
|
|
<tr class="memdesc:ga51690b332091995ffd5c7318f569f934"><td class="mdescLeft"> </td><td class="mdescRight">Wait for all mutators to handshake. <a href="group__gc__major_ga51690b332091995ffd5c7318f569f934.html#ga51690b332091995ffd5c7318f569f934">More...</a><br /></td></tr>
|
|
<tr class="separator:ga51690b332091995ffd5c7318f569f934"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<p>Major GC is responsible for removing unused objects from the heap. </p>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.13
|
|
</small></address>
|
|
</body>
|
|
</html>
|