/* thread_12.c - helper file for testing kernel mutex APIs */ /* * Copyright (c) 2015-2016 Wind River Systems, Inc. * * SPDX-License-Identifier: Apache-2.0 */ /* * @file * @brief mutex test helper * * This module defines a thread that is used in recursive mutex locking tests. * It helps ensure that a private mutex can be referenced in a file other than * the one it was defined in. */ #include #include #include static int tc_rc = TC_PASS; /* test case return code */ extern struct sys_mutex private_mutex; /** * * thread_12 - thread that participates in recursive locking tests * */ void thread_12(void *p1, void *p2, void *p3) { ARG_UNUSED(p1); ARG_UNUSED(p2); ARG_UNUSED(p3); int rv; /* Wait for private mutex to be released */ rv = sys_mutex_lock(&private_mutex, K_FOREVER); if (rv != 0) { tc_rc = TC_FAIL; TC_ERROR("Failed to obtain private mutex\n"); return; } /* Wait a bit, then release the mutex */ k_sleep(K_MSEC(500)); sys_mutex_unlock(&private_mutex); }