| // Copyright 2023 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| //go:build !plan9 && !windows | |
| static void* checkBindMThread(void* thread) { | |
| int i; | |
| for (i = 0; i < CHECKCALLS; i++) { | |
| GoCheckBindM((uintptr_t)thread); | |
| usleep(1); | |
| } | |
| return NULL; | |
| } | |
| void CheckBindM() { | |
| int i; | |
| pthread_t s[CTHREADS]; | |
| for (i = 0; i < CTHREADS; i++) { | |
| pthread_create(&s[i], NULL, checkBindMThread, &s[i]); | |
| } | |
| for (i = 0; i < CTHREADS; i++) { | |
| pthread_join(s[i], NULL); | |
| } | |
| } | |