mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
* test azure * use exit 1 * try again * use useSysAssert * disable i386 * use refc for tlsEmulation on i386 * use refc * disable i386 Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
32 lines
513 B
Nim
32 lines
513 B
Nim
discard """
|
|
disabled: i386
|
|
outputsub: "129"
|
|
"""
|
|
|
|
import os, locks
|
|
|
|
type
|
|
MarkerObj = object
|
|
lock: Lock
|
|
counter: int
|
|
Marker = ptr MarkerObj
|
|
|
|
const
|
|
ThreadsCount = 129
|
|
SleepTime = 250
|
|
|
|
proc worker(p: Marker) {.thread.} =
|
|
acquire(p.lock)
|
|
inc(p.counter)
|
|
release(p.lock)
|
|
sleep(SleepTime)
|
|
|
|
var p = cast[Marker](allocShared0(sizeof(MarkerObj)))
|
|
initLock(p.lock)
|
|
var ts = newSeq[Thread[Marker]](ThreadsCount)
|
|
for i in 0..<ts.len:
|
|
createThread(ts[i], worker, p)
|
|
|
|
joinThreads(ts)
|
|
echo p.counter
|