Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
GHC
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Alex D
GHC
Commits
c74c72f6
Commit
c74c72f6
authored
Aug 22, 2009
by
Thomas Schilling
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make consIORef atomic.
parent
4201e0f8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
4 deletions
+2
-4
compiler/utils/Util.lhs
compiler/utils/Util.lhs
+2
-4
No files found.
compiler/utils/Util.lhs
View file @
c74c72f6
...
...
@@ -79,9 +79,8 @@ module Util (
import Panic
import Data.IORef ( IORef, newIORef )
import Data.IORef ( IORef, newIORef
, atomicModifyIORef
)
import System.IO.Unsafe ( unsafePerformIO )
import Data.IORef ( readIORef, writeIORef )
import Data.List hiding (group)
import Control.Concurrent.MVar ( MVar, newMVar, newEmptyMVar )
...
...
@@ -696,8 +695,7 @@ global a = unsafePerformIO (newIORef a)
\begin{code}
consIORef :: IORef [a] -> a -> IO ()
consIORef var x = do
xs <- readIORef var
writeIORef var (x:xs)
atomicModifyIORef var (\xs -> (x:xs,()))
\end{code}
\begin{code}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment