summaryrefslogtreecommitdiff
path: root/compiler/cbits/genSym.c
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/cbits/genSym.c')
-rw-r--r--compiler/cbits/genSym.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/cbits/genSym.c b/compiler/cbits/genSym.c
index 2d9779b898..8614e97e75 100644
--- a/compiler/cbits/genSym.c
+++ b/compiler/cbits/genSym.c
@@ -4,6 +4,10 @@
static HsInt GenSymCounter = 0;
HsInt genSym(void) {
- return GenSymCounter++;
+ if (n_capabilities == 1) {
+ return GenSymCounter++;
+ } else {
+ return atomic_inc((StgWord *)&GenSymCounter);
+ }
}