mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-01-30 04:10:26 +08:00
Merge pull request #4432 from mysterywolf/mutex
[libc] remove inherent mutex protection
This commit is contained in:
commit
783b6949ab
@ -13,7 +13,6 @@
|
||||
* RT_USING_DFS is not defined
|
||||
* 2020-02-13 Meco Man re-implement exit() and abort()
|
||||
* 2020-02-14 Meco Man implement _sys_tmpnam()
|
||||
* 2020-02-25 Meco Man add multithreaded protection
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
@ -42,36 +41,6 @@ const char __stdin_name[] = "STDIN";
|
||||
const char __stdout_name[] = "STDOUT";
|
||||
const char __stderr_name[] = "STDERR";
|
||||
|
||||
#ifdef RT_USING_HEAP
|
||||
int _mutex_initialize(rt_mutex_t *m)
|
||||
{
|
||||
*m = rt_mutex_create("_mutex_", RT_IPC_FLAG_PRIO);
|
||||
if(*m == RT_NULL)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
void _mutex_acquire(rt_mutex_t *m)
|
||||
{
|
||||
rt_mutex_take(*m, RT_WAITING_FOREVER);
|
||||
}
|
||||
|
||||
void _mutex_release(rt_mutex_t *m)
|
||||
{
|
||||
rt_mutex_release(*m);
|
||||
}
|
||||
|
||||
void _mutex_free(rt_mutex_t *m)
|
||||
{
|
||||
rt_mutex_delete(*m);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* required by fopen() and freopen().
|
||||
*
|
||||
|
@ -1,60 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2015-01-28 Bernard first version
|
||||
*/
|
||||
#include <rtthread.h>
|
||||
#include <yfuns.h>
|
||||
|
||||
/*
|
||||
* for IAR compiler, we recommand to define _DLIB_THREAD_SUPPORT
|
||||
* as 2 for dlib multi-thread support.
|
||||
*/
|
||||
|
||||
#if _DLIB_THREAD_SUPPORT
|
||||
typedef void* _Rmtx;
|
||||
void _Mtxinit(_Rmtx *m)
|
||||
{
|
||||
rt_mutex_t mutex;
|
||||
|
||||
RT_ASSERT(m != RT_NULL);
|
||||
|
||||
mutex = (rt_mutex_t)m;
|
||||
rt_mutex_init(mutex, "iarMtx", RT_IPC_FLAG_FIFO);
|
||||
}
|
||||
|
||||
void _Mtxdst(_Rmtx *m)
|
||||
{
|
||||
rt_mutex_t mutex;
|
||||
|
||||
RT_ASSERT(m != RT_NULL);
|
||||
|
||||
mutex = (rt_mutex_t)m;
|
||||
rt_mutex_detach(mutex);
|
||||
}
|
||||
|
||||
void _Mtxlock(_Rmtx *m)
|
||||
{
|
||||
rt_mutex_t mutex;
|
||||
|
||||
RT_ASSERT(m != RT_NULL);
|
||||
|
||||
mutex = (rt_mutex_t)m;
|
||||
rt_mutex_take(mutex, RT_WAITING_FOREVER);
|
||||
}
|
||||
|
||||
void _Mtxunlock(_Rmtx *m)
|
||||
{
|
||||
rt_mutex_t mutex;
|
||||
|
||||
RT_ASSERT(m != RT_NULL);
|
||||
|
||||
mutex = (rt_mutex_t)m;
|
||||
rt_mutex_release(mutex);
|
||||
}
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user