stripes
nimony/lib/std/stripes.nim
type FifoStripe = object lock: TicketLock head: int64 tail: int64 count: int64 data: seq[T]
proc init(s: var FifoStripe[T]; capacity: int64)proc tryEnqueue(s: var FifoStripe[T]; item: T): boolproc tryBulkEnqueue(s: var FifoStripe[T]; items: openArray[T]): int64Enqueue as many leading items of
items(in order) as fit under one lock acquisition; returns how many were taken.proc tryBulkDequeue(s: var FifoStripe[T]; bulkSize: int64; buf: var openArray[T]): int64proc grow(s: var FifoStripe[T]; newCapacity: int64)