_doSignal()报错问题排查

_doSignal()报错问题排查

Q:_doSignal() error: no node can allocate from free sigqueue.
这个错误发生一般是由于向某一线程发送消息时申请新的消息 buffer,存储消息并进行消息排队,而排队的消息并未被线程及时处理导致消息 buffer 不够才报错



    • Related Articles

    • free 命令

      说明 该命令用于显示系统当前的内存信息 格式 free 可通过shell命令:help  free  查看详细信息 示例 1.查看当前的内存信息 [root@shell:/root]# free heap show >>      HEAP         TOTAL      USED     MAX USED  SEGMENT USED -------------- ---------- ---------- ---------- ------- ---- kersys            ...
    • free 命令含义解析

      Q:free 命令含义解析 free 命令执行效果如下: heap show >> 部分显示 kernel 堆和 system 堆信息,一般二者合二为一显示为 “kersys"TOTAL 表示大小,即在调用 API_KernelStart() 接口时传入的 __heap_end 与 __heap_start 的差值(实际因为对齐会有一点偏差),如下图所示。USED 表示当前已使用的大小,MAX USED 表示曾经使用过的最大大小,SEGMENT 表示当前堆中的碎片块数,USED ...
    • 物理内存的使用率如何获取?

      Q:我们需要物理内存的使用率这个指标,定时上送。free命令看是虚拟内存,怎么获取这个值?有函数吗? API_VmmPhysicalKernelDesc 另:  API_VmmPhysicalKernelDesc    是针对 VMM 物理内存使用情况的统计;  API_RegionShow                         显示指定的内存池信息; API_KernelHeapInfo                    是系统内存堆使用情况的统计; 命令 free ...
    • SylixOS 信号发送、接收机制

      Q:SylixOS 信号发送、接收机制过程 SylixOS 可以通过 kill() 或 sigqueue() 向线程发送信号(向进程发送信号相当于发送给进程的主线程)。kill() 与 sigqueue() 的区别主要在发送信号的类型不一样,kill() 发送非排队信号,sigqueue() 发送排队信号。 kill() 中首先会调用 _doKill() 接口,在 _doKill() 中构建信号信息结构 struct siginfo 和 LW_CLASS_SIGPEND ...
    • 由于应用程序比较大,上传到 flash 中执行的速度慢,希望上传到 ram 中运行

      问:应用程序比较大,上传到 flash 中执行的速度慢,是否可以上传到 ram 中运行? 答:1、/tmp 目录下使用的是 ramfs,可以将应用程序上传到 /tmp 目录下执行,这样就可以加快应用程序的上传和加载速度。         2、或者创建一个内存文件系统 mount -t ramfs 0 /mnt/ram 将文件传到  /mnt/ram 目录中运行。参数 0 代表使用 free 命令查看到的系统堆的剩余空间。