error:No more processes or operation would block
Q:SylixOS 运行程序运行出现 error:No more processes or operation would block
出现上述错误主要是因为应用程序中使用了太多了event。SylixOS中所有的锁包括互斥锁、信号灯都是event。可在/proc/kernel/objects中查看:
从上图可以看出event已经达到了最大值3000,因此报错。
在SylixOS中默认最大值是可以在源码中修改的,修改位置SylixOS/libsylixos/SylixOS/config/kernel/kernel_cfg.
在这个头文件中可以修改默认内核对象管理数量,包括event。这里把他修改为65535,重新编译源码。
可以看到event的最大值已经修改了,重新运行刚才的程序也没有报错。
注:
出现 error:No more processes or operation would block 问题也有可能是应用程序的错误处理机制问题,比如:EAGAIN 错误返回值为 11 ;
以 O_NONBLOCK 的标志打开文件/socket/FIFO,如果连续做 read 操作而没有数据可读。此时程序不会阻塞起来等待数据准备就绪返回,read 函数会返回一个错误 EAGAIN,提示你的应用程序现在没有数据可读。
Related Articles
An error occurred.See error log for more details.
问: 如何解决 IDE 在编译点选工程的时候出现 An error occurred.See error log for more details. 的问题。 解决方式: 删除工作目录下的 .metadata 后重新打开 IDE 编译 可以正常使用。 参考文章:IDE 工程出现在属性页面不能修改参数
运行警告 "WARNING: ctx.vmem create error!" ?
Q: SylixOS 程序运行时警告 "WARNING: ctx.vmem create error!" ? A: SylixOS 动态加载器在加载应用程序后会尝试申请虚拟地址空间,如果申请的空间过大,会导致申请失败, 出现 "WARNING: ctx.vmem create error!" 可以调整环境变量SO_MEM_PAGES定义的大小,从而缩小申请的空间大小,避免出现警告
应用程序报错:error function not implemented
Q:运行应用程序提示如图的错误,对应的库已上传,在自己的设备上可以正常。其他设备会报错 “error function not implemented” 上传的时候没有设置 ftp 的 bin 模式,可以通过将原来的 bin 文件读出来和上传之前的 bin 文件对比查看其差异
error: skipping incompatible xxxxx when searching for -lxxx
Q:qt 编译失败,报错信息为 “error: skipping incompatible D:/ACOINFO/workspace_base2.1.6/Base_x64/libcextern/Release\libcextern.a when searching for -lcextern”,等如下图所示 该报错打印是由于 qt 程序编译时使用的工具链与 Base 工程类型不兼容导致的,此时需检查 qt 选项 kit 配置中编译链和依赖的 Base ...
安装 IDE 报NSIS_Error 错误
问:客户根据翼辉提供的 IDE 下载链接,下载后,安装出现如下问题:Installer integrity check has failed。关键字"NSIS_Error" 问题解决: 该问题是安装文件不完整导致! 采取各种措施重新下载完整的安装包: 1、清理IE缓存后下载; 2、换浏览器下载; 3、系统杀毒、清理完恶意软件后下载; 4、下载时不使用下载辅助工具(迅雷、Internet Downloader等); ...