MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / fxShareMachine

Function fxShareMachine

xs/sources/xsAPI.c:1772–1817  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1770}
1771
1772void fxShareMachine(txMachine* the)
1773{
1774 if (!(the->shared)) {
1775 #ifdef mxDebug
1776 fxLogout(the);
1777 #endif
1778 {
1779 txSlot* realm = mxModuleInstanceInternal(mxProgram.value.reference)->value.module.realm;
1780 txSlot* modules = mxOwnModules(realm)->value.reference;
1781 txSlot* module = modules->next;
1782 while (module) {
1783 mxModuleInstanceInternal(module->value.reference)->value.module.realm = NULL;
1784 module = module->next;
1785 }
1786 mxModuleInstanceInternal(mxProgram.value.reference)->value.module.realm = NULL;
1787 mxException.kind = XS_REFERENCE_KIND;
1788 mxException.value.reference = mxRealmClosures(realm)->value.reference;
1789 mxProgram.value.reference = modules; //@@
1790
1791 {
1792 txSlot* target = fxNewInstance(the);
1793 txSlot* modules = mxOwnModules(realm)->value.reference;
1794 txSlot* module = modules->next;
1795 while (module) {
1796 target = target->next = fxNewSlot(the);
1797 target->value.symbol = mxModuleInstanceInternal(module->value.reference)->value.module.id;
1798 target->kind = XS_SYMBOL_KIND;
1799 target->ID = mxModuleInstanceInternal(module->value.reference)->value.module.id;
1800 module = module->next;
1801 }
1802 mxPull(mxHosts); //@@
1803 }
1804 mxModuleQueue = mxUndefined;
1805 mxDuringJobs = mxUndefined;
1806 mxFinalizationRegistries = mxUndefined;
1807 mxPendingJobs = mxUndefined;
1808 mxRunningJobs = mxUndefined;
1809 mxBreakpoints = mxUndefined;
1810 mxHostInspectors = mxUndefined;
1811 mxInstanceInspectors = mxUndefined;
1812 }
1813 fxCollectGarbage(the);
1814 fxShare(the);
1815 the->shared = 1;
1816 }
1817}
1818#endif
1819
1820/* Garbage Collector */

Callers

nothing calls this directly

Calls 5

fxLogoutFunction · 0.85
fxNewInstanceFunction · 0.85
fxNewSlotFunction · 0.85
fxCollectGarbageFunction · 0.85
fxShareFunction · 0.85

Tested by

no test coverage detected