blob: f70b654f4b52ecdb44aaf7933818960b1c2b8184 [file] [log] [blame]
/* 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 <zephyr/tc_util.h>
#include <zephyr/kernel.h>
#include <zephyr/sys/mutex.h>
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)
{
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);
}