【发布时间】:2009-01-28 02:29:03
【问题描述】:
我在单线程进程中使用 Linux 的 mount(2) 函数。但是像 CD-ROM 这样的设备的安装可能需要一段时间(我见过的最糟糕的是 40 秒!),因为它会考虑一点,启动磁盘,然后才会安装文件系统。这可能会在相当长的时间内阻止进程处理其他事件。
我似乎找不到以非阻塞方式挂载文件系统的方法。 有没有办法在不使用多线程或分叉的情况下异步挂载文件系统?
知道操作是否完成对我来说不是问题,因为我已经在同一个线程中读取了内核 uevent。
【问题讨论】:
-
有什么特别的理由不分叉安装吗?
-
我是一个完美主义者,希望保持单线程以尽可能少地使用资源。 :)
-
我认为这是过早的优化。
-
是的,但我确实没有编写分叉/线程代码还,所以我宁愿避免这样做if 有一种简单的方法可以通过修改对 mount() 的调用来做我想做的事。问题是是否有任何(如用于 umount 的 MNT_DETACH)。答案很可能是“不”。
-
这不是可能不。它是不。