blob: a8d2c1fec242dc638c202fe97c8dc9f39c4b6345 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
discard """
matrix: "--mm:refc; --mm:orc"
targets: "c cpp"
"""
import atomics
type
Pledge* {.exportc.} = object
p: PledgePtr
PledgeKind {.exportc.} = enum
Single
Iteration
PledgePtr {.exportc.} = ptr object
case kind: PledgeKind
of Single:
impl: PledgeImpl
of Iteration:
discard
PledgeImpl {.exportc.} = object
fulfilled: Atomic[bool]
var x: Pledge
when defined(gcRefc):
doAssert x.repr == "[p = nil]"
elif not defined(cpp): # fixme # bug #20081
doAssert x.repr == "Pledge(p: nil)"
|