summary refs log tree commit diff stats
path: root/lib/system/threads.nim
Commit message (Collapse)AuthorAgeFilesLines
* removes deprecated T/P typesAraq2018-11-161-6/+0
|
* even more strict isNil handling for strings/seqs in order to detect bugsAraq2018-08-221-2/+3
|
* Haiku support for Nim (#8542)alaviss2018-08-141-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * posix_other: Haiku now has spawn.h This is added per https://dev.haiku-os.org/ticket/13446 * posix_other: Add Haiku specific Dirent members * cpuinfo: Add an implementation for Haiku * distros: Add basic Haiku support * encodings: update Haiku support * fenv, math: Haiku now provides libm * times: Add Haiku struct members * ansi_c, osalloc: Add Haiku constants * threads: Add Haiku support * testament: Haiku uses LIBRARY_PATH * nim.cfg: Update Haiku support libnetwork should only be linked if network functions are used * threads: Haiku does not support -pthread switch * tworkingdir: Haiku's env is in /bin * posix_other: add SIGKILLTHR for Haiku * sockets: link with libnetwork on Haiku * coro: correct ucontext.h location http://pubs.opengroup.org/onlinepubs/009696699/basedefs/ucontext.h.html * coro: ucontext backend is not available on Haiku Haiku doesn't provide the <ucontext.h> header, as it was removed from POSIX * coro: fix setjmp backend The compiler does not allow statements after a noreturn function * nativesockets: Haiku doesn't support AI_V4MAPPED * system: hostOS can contains "haiku" * os: add support for Haiku's packagefs packagefs is read-only, but there are writable holes to the underlying file system as well * os: update constant for Haiku
* Nintendo switch support (#8069)Joey2018-06-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * Add config section for Nintendo Switch * Add compiler configuration for Nintendo Switch and it's CPU * Add specific lib code for Nintendo Switch * Add GC support for Nintendo Switch * Update changelog for Nintendo Switch * Update changelog with more info about fixed paths * Cleaned up GC memory management a bit * Relocate docs for Switch * Rename aarch64NoneElfGcc to nintendoSwitchGCC * Remove armv8a57 * Fix installer.ini * Reuse code in linux and amd64 * Add posix defs for nintendo switch * Add more defined sections for nintendo switch * Remove old comment * Add what's not supported for Nintendo Switch docs * Make nintendoswitch == posix * Remove DEVKITPRO references from nim.cfg * Make PR extccomp changes * Remove Result type alias * Add separate switch consts file * Update docs for nintendo switch * Fix travis errors with undefined consts and add correct wait.h procs
* Native access to Genode environmentEmery Hemingway2018-06-071-2/+5
| | | | | | | | | | | | | | | | | Add a 'GenodeEnv' type and a 'componentConstructHook' to the system module. The 'componentConstructHook' allows for detection of POSIX style programs that exit implicitly or native Genode components that initialize to serve RPC requests and OS signals. This hook takes a 'GenodeEnv' argument so that the environment interface is passed cleanly to application code after globals are initialized. This is an typed pointer to a C++ object, procedures for accessing the environment will be available from a Nimble library and not included in the standard library. The standard library has an internal pointer to the environment object but this is not for external use, the undocumented global environment pointer has been removed.
* Expose GC_setStackBottom (#7885)Yuriy Glukhov2018-06-041-1/+1
|
* __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
|/