mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
* Working on OpenBSD CI * Condense steps into 2 steps to make output easier to follow. * Move up one directory after csources build. * Remove FreeBSD build manifest and add OpenBSD test ignores for coroutines and hot code reloading. * If runCI fails, run the test results script. * Add email trigger for build failure * Remove .git from repository URL * Disable SFML test on OpenBSD * Disable tgetaddrinfo on OpenBSD as only UDP and TCP protocols are supported. * Remove getFilePermissions as it causes CI test failures with NimScript. * Set clang as cc in nim.cfg and use gmake to build csources. * Add getCurrentDir to nimscript. * Remove duplicate getCurrentDir and check for not weirdTarget. * Add CI badge for OpenBSD. * Disable tests which allocate lots of memory for OpenBSD. * Use `CORO_BACKEND_SETJMP` on OpenBSD rather than ucontext. * Simplify building of koch * Disable t8657 on OpenBSD. See issue #13760. * Fix #12142 - tarray_of_channels fails on OpenBSD * Disable thhtpclient_ssl and tosprocterminate on OpenBSD. These tests can be enabled at a later date after fixing them. * Install libffi. * Set path to libc for openbsd. * Disable tevalffi for now. * Remove tevalffi.nim. * Use ncpuonline sysctl rather than ncpu. * Disable tacceptcloserace and tasynchttpserver on OpenBSD. * Enable tacceptcloserace and tasynchttpserver. * Fix #13775 as suggested by @alaviss - use /bin/cat on OpenBSD rather than /bin/sh. * Enable test on OpenBSD. * Disable tflowvar on OpenBSD.
40 lines
630 B
Nim
40 lines
630 B
Nim
discard """
|
|
sortoutput: true
|
|
output: '''
|
|
(x: 0.0)
|
|
(x: 0.0)
|
|
(x: 0.0)
|
|
test
|
|
test
|
|
test
|
|
'''
|
|
disabled: "openbsd"
|
|
"""
|
|
|
|
# bug #2257
|
|
import threadpool
|
|
|
|
type StringChannel = Channel[string]
|
|
var channels: array[1..3, StringChannel]
|
|
|
|
type
|
|
MyObject[T] = object
|
|
x: T
|
|
|
|
var global: MyObject[string]
|
|
var globalB: MyObject[float]
|
|
|
|
proc consumer(ix : int) {.thread.} =
|
|
echo channels[ix].recv() ###### not GC-safe: 'channels'
|
|
echo globalB
|
|
|
|
proc main =
|
|
for ix in 1..3: channels[ix].open()
|
|
for ix in 1..3: spawn consumer(ix)
|
|
for ix in 1..3: channels[ix].send("test")
|
|
sync()
|
|
for ix in 1..3: channels[ix].close()
|
|
|
|
when true:
|
|
main()
|