Samuel Dai

Results 22 comments of Samuel Dai

> > 只看了宏的部分,感觉如果可以有可变返回类型,可以直接做阻塞IO的调用返回。 > > 没懂你意思 应该说,在这种设计下,可自行设计闭包,来在condition与cmd中共享cmd执行结果参数,从而实现阻塞io(根据结果为Err(EAGAIN)/Err(_)/Ok(result)来决定是继续阻塞轮询/返回错误/返回结果) 譬如smoltcp在判断can_recv后接着recv操作也不是保证一定能返回成功的,这时候似乎就要用闭包来共享结果到condition表达式中了? 另一方面,自己直接用wait_queue来实现io的阻塞,不符合封装,也容易造成这种没有处理interrupt信号的问题。

> > # 问题 > > File对象的add_epoll和remove_epoll方法,里面对文件类型进行了特判。 我认为可以统一处理这个事情,给IndexNode这个trait加add_epoll()和remove_epoll()函数会比较好。 > > @Godones 另一个问题,对于代码:https://github.com/DragonOS-Community/DragonOS/pull/894/files#diff-08d0c277f75d9d64222b3634cc6c86f177e35c79e7cda7ca1161a1211cde4922R522 不能认为,“不是pipe,且不是socket的,那么这种inode就是EventFdInode” 这个跟上面Add的时候的语义完全就对应不上,需要修改。 > > 抄送:@GnoCiYeH @Chiichen > > 只有pollable的iNode才支持epoll,这里感觉统一加在iNode里有点奇怪,是否新加一个trait:`Pollable`来管理这个更好? `+1` 是否Pollable应该是一个类型绑定的Inode属性,目前依赖错误返回来判断是否Pollable也影响到socket的实现的简洁度

尝试将 KernelStack::SIZE 调至 32k (0x8000), 仍然出现此错误

> ![image](https://private-user-images.githubusercontent.com/63215266/376904190-cc1bbe02-851d-4af6-9ce0-0380b118aa1a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjkwNjI5MjUsIm5iZiI6MTcyOTA2MjYyNSwicGF0aCI6Ii82MzIxNTI2Ni8zNzY5MDQxOTAtY2MxYmJlMDItODUxZC00YWY2LTljZTAtMDM4MGIxMThhYTFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDE2VDA3MTAyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdjM2E3MWVhN2E3YWNlMjZmZmU4NDU0OTY2ZTk2N2ZmOTYxZWZmMDQwNjQ4NDIwNjAxYWQ1ZTE5YmMxMTA2M2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Oqnz4PWimYexp3UJCLlbNuANUoBa7fhKqYGVMeb1In0) 这个`define`文件夹改名`types`更合乎惯例?没见过rust用`define`表示“定义公共的结构体”的意思的。 命名为 `definition` 如何呢?毕竟是一大票定义(

tcp udp port释放未实现