ढेर कोड glibc घटक के अंदर रहता है, और libc.so.x साझा लाइब्रेरी में पैक किया जाता है। ढेर का वर्तमान कार्यान्वयन एरेना नामक कई स्वतंत्र उप-ढेर का उपयोग करता है। समेकन संरक्षण के लिए प्रत्येक क्षेत्र में अपना स्वयं का म्यूटेक्स होता है। इस प्रकार यदि एक प्रक्रिया के भीतर पर्याप्त क्षेत्र हैं, ढेर, और धागे को वितरित करने के लिए एक तंत्र 'ढेर उनके बीच समान रूप से पहुंचता है, तो म्यूटेक्स के लिए विवाद की संभावना न्यूनतम होनी चाहिए। यह पता चला है कि यह आवंटन के लिए अच्छी तरह से काम करता है। Malloc() में, यह देखने के लिए एक परीक्षण किया जाता है कि वर्तमान थ्रेड के लिए वर्तमान लक्ष्य क्षेत्र के लिए mutex मुक्त है (trylock)। यदि ऐसा है तो क्षेत्र अब लॉक हो गया है और आवंटन राशि बढ़ जाती है। यदि म्यूटेक्स व्यस्त है तो प्रत्येक शेष क्षेत्र बदले में कोशिश की जाती है और अगर म्यूटेक्स व्यस्त नहीं होता है। अगर किसी क्षेत्र को अवरुद्ध किए बिना लॉक किया जा सकता है, तो एक नया नया क्षेत्र बनाया जाता है। परिभाषा के अनुसार यह क्षेत्र पहले ही लॉक नहीं है, इसलिए आवंटन अब अवरुद्ध किए बिना आगे बढ़ सकता है। आखिरकार, धागे द्वारा उपयोग किए जाने वाले क्षेत्र की आईडी थ्रेड स्थानीय भंडारण में बरकरार रखी जाती है, और इसके बाद बाद में पहले क्षेत्र के रूप में उपयोग किया जाता है जब malloc() को उस थ्रेड द्वारा अगली बार बुलाया जाता है। इसलिए malloc() के लिए सभी कॉल अवरुद्ध किए बिना आगे बढ़ेगा।
लिंक अब और काम नहीं करता है;/ – kokosing