From f48e276a5ba68d8b6fcb4a558022581fb30f9326 Mon Sep 17 00:00:00 2001 From: David Feuer Date: Wed, 29 Aug 2018 16:34:21 -0400 Subject: Finish stable split Long ago, the stable name table and stable pointer tables were one. Now, they are separate, and have significantly different implementations. I believe the time has come to finish the split that began in #7674. * Divide `rts/Stable` into `rts/StableName` and `rts/StablePtr`. * Give each table its own mutex. * Add FFI functions `hs_lock_stable_ptr_table` and `hs_unlock_stable_ptr_table` and document them. These are intended to replace the previously undocumented `hs_lock_stable_tables` and `hs_lock_stable_tables`, which are now documented as deprecated synonyms. * Make `eqStableName#` use pointer equality instead of unnecessarily comparing stable name table indices. Reviewers: simonmar, bgamari, erikd Reviewed By: bgamari Subscribers: rwbarton, carter GHC Trac Issues: #15555 Differential Revision: https://phabricator.haskell.org/D5084 --- rts/rts.cabal.in | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'rts/rts.cabal.in') diff --git a/rts/rts.cabal.in b/rts/rts.cabal.in index d41135ddd3..d509953a1b 100644 --- a/rts/rts.cabal.in +++ b/rts/rts.cabal.in @@ -127,7 +127,8 @@ library rts/Profiling.h rts/Signals.h rts/SpinLock.h - rts/Stable.h + rts/StableName.h + rts/StablePtr.h rts/StaticPtrTable.h rts/TTY.h rts/Threads.h @@ -393,7 +394,8 @@ library STM.c Schedule.c Sparks.c - Stable.c + StableName.c + StablePtr.c StaticPtrTable.c Stats.c StgCRun.c -- cgit v1.2.1