Lines Matching refs:pthread
618 * The Go runtime allocates a thread-local "g" variable on Android by creating a pthread key and
620 * On arm32/arm64, it creates a pthread key, sets it to a magic value, then scans forward from
623 suspect the actual platform breakage happened with Android M's [lock-free pthread key
626 creates pthread keys until one of them hits the fixed offset.
632 * Moving the pthread keys before the thread pointer breaks Go-based apps.
636 [arm32][go-darwin-arm32]/[arm64][go-darwin-arm64] Darwin, Go scans for pthread keys like it
756 * 16 isn't enough for the pthread keys, so the Go runtime is still a problem.
757 * Reserving 138 words is enough for existing slots and pthread keys.
809 small positive offset from TP (within the first 384 words), it will think it has found the pthread
813 slot with this magic value. This hack doesn't appear to work, however. The runtime finds its pthread
816 it is typically zero. After [Bionic's pthread key system was rewritten to be
822 ### Workaround for Go: place pthread keys after the executable's TLS
826 `/system/bin/app_process{32,64}` limits its use of TLS memory, then the pthread keys could be
829 Go scans 384 words from the thread pointer. If there are at most 16 Bionic slots and 130 pthread
832 Drawback: In principle, this might make pthread key accesses slower, because Bionic can't assume
833 that pthread keys are at a fixed offset from the thread pointer anymore. It must load an offset from