4
0
mirror of https://github.com/RT-Thread/rt-thread.git synced 2025-02-21 01:07:18 +08:00

优化abort函数

This commit is contained in:
Meco Man 2021-02-20 11:31:58 +08:00
parent 8ea33c2101
commit eaa3454bbe
4 changed files with 6 additions and 31 deletions

View File

@ -256,6 +256,7 @@ void _ttywrch(int ch)
#endif
}
/* for exit() and abort() */
RT_WEAK void _sys_exit(int return_code)
{
extern void __rt_libc_exit(int status);

View File

@ -9,7 +9,6 @@
*/
#include <rtthread.h>
#include <stdlib.h>
void __rt_libc_exit(int status)
{
@ -24,24 +23,12 @@ void __rt_libc_exit(int status)
if (self != RT_NULL)
{
if(status == EXIT_FAILURE) /* abort() */
{
rt_kprintf("thread:%s abort!\n", self->name);
}
else /* exit() */
{
rt_kprintf("thread:%s exit:%d!\n", self->name, status);
}
rt_kprintf("thread:%s exit:%d!\n", self->name, status);
rt_thread_suspend(self);
rt_schedule();
}
}
void __rt_libc_abort(void)
{
__rt_libc_exit(EXIT_FAILURE);
}
int __rt_libc_system(const char *string)
{
/* TODO */

View File

@ -9,16 +9,10 @@
*/
#include <rtthread.h>
void exit (int status)
/* for exit() and abort() */
void __exit (int status)
{
extern void __rt_libc_exit(int status);
__rt_libc_exit(status);
while(1);
}
void abort(void)
{
extern void __rt_libc_abort(void);
__rt_libc_abort();
while(1);
}

View File

@ -283,8 +283,8 @@ _free_r (struct _reent *ptr, void *addr)
rt_free (addr);
}
void
exit (int status)
__attribute__ ((noreturn)) void
_exit (int status)
{
extern void __rt_libc_exit(int status);
__rt_libc_exit(status);
@ -303,13 +303,6 @@ void __libc_init_array(void)
/* we not use __libc init_aray to initialize C++ objects */
}
void abort(void)
{
extern void __rt_libc_abort(void);
__rt_libc_abort();
while(1);
}
uid_t getuid(void)
{
return 0;