summary refs log tree commit diff stats
path: root/lib/system/threads.nim
Commit message (Collapse)AuthorAgeFilesLines
* __NR_gettid as const on amd64 (#7460)Jacek Sieka2018-04-061-1/+4
|
* Threading: increase TLS size for new allocatorAraq2017-12-071-2/+2
|
* fixes #5143Araq2017-10-161-1/+1
|
* balance Genode CPU pinning, deadlock at Genode exit (#6317)Emery Hemingway2017-09-161-2/+7
| | | | | | | | | | | | | * Genode: balance thread CPU affinities Genode threads are pinned by defaut to the same CPU as the initial component entrypoint thread. Thread affinities are also permanent. This patch pins new threads to CPUs in a round-robin manner. Arbitrary CPU pinning is not exposed and the 'nimPinToCpu' has no effect. * Genode: guarantee that 'quit' will not return On Genode exits are handled by whatever component is acting as parent. The caller has no guarentee that the parent implementation will halt the caller's threads, so explicitly deadlock the 'quit' procedure.
* WIP: --gc:regions instead of --gc:stackAraq2017-08-131-2/+2
|
* Allow to configure tls size (#6171)Ruslan Mustakov2017-08-051-2/+7
|
* Remove expr/stmt (#5857)Arne Döring2017-07-251-1/+1
|
* Cache threadId to not perform syscalls all the time (#6111)Eugene Kabanov2017-07-161-46/+79
| | | Use syscall to get threadId on FreeBSD and MacOS
* Fix #5920 (#5922)Eugene Kabanov2017-05-311-1/+11
| | | | * Use native `getthrid` on OpenBSD. * Use NetBSD specific primitive to get thread id
* Linux abi take 3 (#5692)Jacek Sieka2017-04-121-13/+21
| | | | | * avoid generating object fields for imported types * fix some abi/type issues for linux_amd64
* fixup! support for the Genode OS framework (#5653)Emery Hemingway2017-04-021-0/+2
| | | Allocate thread metadata at createThread.
* support for the Genode OS framework (#5560)Emery Hemingway2017-03-311-1/+74
|
* Fixes #4719. (#5585)Eugene Kabanov2017-03-231-19/+23
|
* Fix #4972. (#5567)Eugene Kabanov2017-03-191-5/+10
|
* Fixes to support Dragonfly BSD. (#5552)Eugene Kabanov2017-03-171-2/+6
| | | | | | | | | * Fix kqueue.nim and ansi_c.nim to support dragonfly. * Fix ioselectors.nim, threads.nim to support dragonfly. * Fix deprecated dealloc call in tioselectors.nim. * Fix tfsmonitor.nim test to run only on Linux. * Fix osproc.nim return wrong exit codes. * Fix getAppFilename() for dragonfly. * Fix proper exit code handling.
* removed onThreadCreation; onThreadDestruction is now thread localAraq2017-02-261-49/+11
|
* Add ``tearDownForeignThreadGc`` function (#5369)Anatoly Galiulin2017-02-131-1/+15
|
* Use __NR_gettid instead of SYS_gettid (#5338)Yuriy Glukhov2017-02-041-3/+3
|
* make getThreadId() work on OSXAndreas Rumpf2017-01-311-2/+4
|
* another attempt to getThreadId work on Linuxaraq2017-01-311-1/+1
|
* make getThreadId() work on Linuxaraq2017-01-311-3/+6
|
* added system.getThreadId for various OSes (untested)Araq2017-01-311-1/+31
|
* bugfix: onThreadDestruction callbacks should be run in reverse orderAndreas Rumpf2017-01-261-1/+1
|
* onThreadDestruction feature added to Nim's threading modelAndreas Rumpf2017-01-241-11/+32
|
* added system.runOnThreadCreationHandlers for initialization of thread local ↵Araq2017-01-201-0/+9
| | | | storage for the main thread
* added system.onThreadCreation feature for safe thread local storage ↵Andreas Rumpf2017-01-181-0/+31
| | | | initializations
* naive work-around for time redefinition (#5193)Fabian Keller2017-01-081-4/+5
|
* disable pinToCpu for OSXAndreas Rumpf2017-01-071-4/+5
|
* bugfix: bottom of AVL tree is now threadsafeAndreas Rumpf2016-09-241-0/+2
|
* attempt to fix #4640Andreas Rumpf2016-09-131-1/+3
|
* fixes #4088Andreas Rumpf2016-09-111-3/+3
|
* Add handle function to Thread typecoffeepots2016-07-271-2/+6
| | | Exposes SysThread type and introduces the function "handle" to return Thread.sys.
* prepare Nim codebase for upcoming parser changesAndreas Rumpf2016-07-151-2/+2
|
* prefer consts to importing #defines from headersJacek Sieka2016-06-061-2/+7
| | | | | to be completed - better would be to have a libc wrapper that deals with all pesky C ABI details
* Made nimphpext work with gc:stack.Hans Raaf2016-05-251-2/+2
|
* createThread is more convenient to use with a proc taking no argumentsAraq2015-10-191-0/+3
|
* Properly register threads with the Boehm GC.Reimer Behrends2015-09-081-15/+46
| | | | | | | | | | | | | | | | In order to be able to scan thread stacks, the Boehm GC needs to know about newly created threads. We establish the end of the stack by using GC_call_with_stack_base (this works properly also with the dual-stack Itanium architecture) and then GC_register_my_thread() to register a thrad and GC_unregister_my_thread() to unregister it again. This patch also includes a modification for the refc and markandsweep collectors to set the stack bottom for thread stacks correctly even if an optimizer aggressively inlines and optimizes procedures (this is already being done for the stack of the main thread). Finally, we use the {.noconv.} pragma for the Boehm GC, as the Boehm API uses no specific calling convention.
* make --gc:none work with --threads:onAraq2015-08-261-1/+1
|
* implemented system.pinToCpuAraq2015-07-011-10/+40
|
* Fix #2672. Do not define globalsSlot for native TLSSergey Avseyev2015-06-261-16/+11
| | | | | | | | | | | | | | | | Motivation ---------- globalsSlot is always defined so threading code works incorrectly when native TLS supported. Modification ------------ Defined globalsSlot only in TLS emulation mode. Remove myThreadId, which based on broken behavior. It might be reimplemented later Result ------ No segfaults.
* Trim trailling spacesSergey Avseyev2015-06-261-36/+35
|
* Merge branch 'devel' into gogcStefan Talpalaru2015-06-151-67/+73
|\
| * lib/system/g-w - Dropped 'T' from typespdw2015-06-041-67/+73
| |
* | the Go GC - initial implementationStefan Talpalaru2015-05-311-3/+3
|/
* Fix pthread_create binding when compiling in C++ mode.Philip Wernersbach2015-03-151-2/+2
| | | | | C++ has different rules for void pointers, which causes the binding to be invalid when compiling in C++ mode.
* fixes #2074Araq2015-02-261-1/+11
|
* Disable -pthread for linker on OSXHans Raaf2015-02-131-1/+3
| | | | | The -pthread is not needed on Darwin/OS X and the Apple compilers give a warning about this if you use --threads:on with the Nim compiler.
* proper fix for stack initialization and threadvar emulationAraq2014-11-111-11/+27
|
* Remove references to pthread_mutex_timedlock().Reimer Behrends2014-11-061-10/+0
| | | | | | | The pthread_mutex_timedlock() function is not supported on a number of architectures and is not actually used by the library or compiler, but prevents C++ compilation on systems that do not support it when threads are enabled.
* merged things from develAraq2014-09-121-1/+0
|\