我使用Linux mount(2)功能在单线程处理。但是,像CD-ROM设备的设备安装可能需要一段时间(我见过的最差的为40秒!),因为它会思考了一下,启动磁盘,然后才将挂载文件系统。这可以从处理其它事件相当长的时间块的过程。

我似乎不能找到一种方法在一个非阻塞方式挂载文件系统。的有一种方法来异步挂载文件系统没有多线程或分叉吗

了解操作是否完成并不是我的问题,我已经在同一个线程读取内核uevents。

有帮助吗?

解决方案

没有。兵不血刃了另一个线程或fork()ing,你必须等待mount()返回。

其他提示

如果你想这样做在单线程方式,可以手动执行mount命令和背景,并使用选择()或东西轮询完成。然而,这是hackish的和从分叉和程序内调用安装()差别不大。

另外值得一提的是,我已经经历了安装()阻塞的整个过程(以及相关的线程),所以对于真正的异步行为,分叉可能是要走的路。

您可以让在后台运行安装程序。 运行财产以后像的insted的:

system("mount -a ");

待办事项

system("mount -a &");

这将让在后台mouning完整的你。

但看有点接近后,这种解决方案不使用C接口,但系统接口

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top