为什么使用numpy的memmap打开设备文件(而不是普通文件)不能工作?
self.surface = np.memmap('/dev/fb1', dtype=np.uint16, mode='r+', shape=(320,240))
我正在使用一个自定义内核模块,添加了一个帧缓冲设备,在Python常规的 mmap 模块下工作正常。但是使用 numpy 似乎会在访问文件系统时挂起内核的互斥锁或其他什么(我真的不确定发生了什么)。
我的问题是,这是否是 numpy 的 memmap 无法处理的,我应该采用其他方式?
我在unix stackexchange上提出了另一个问题,但我觉得这是两个不同的问题,所以我都发布了。
显然,这是在 Linux 上(Kubuntu Maverick 带有自定义内核模块)。
更新:
好吧,事实证明我可以很好地创建 memmap。问题似乎是当我关闭进程而没有明确关闭 memmap 对象时,它将在内核中挂起互斥锁。
我不知道这个问题是与 numpy、我的内核模块还是其他地方有关。