#34 closed defect (fixed)
Adjust RTPipe API
Reported by: | dmik | Owned by: | Valery V. Sedletski |
---|---|---|---|
Priority: | blocker | Milestone: | VBox driver |
Component: | Runtime | Keywords: | |
Cc: |
Description
The current OS/2 implementation of the RTPipe api uses DosCreateNPipe
and friends, i.e. OS/2 native named pipes. This imposes a problem though: some cross-platform code (e.g. DrvNAT.cpp
, DrvTAP.cpp
) uses LIBC poll()
to work with pipes created by RTPipeCreate
, but OS/2 native pipes are incompatible with LIBC select()
which is used there by the poll()
implementation.
There are several ways to deal with that:
- Replace RPIPE with RTSOCKET and use
RTSocket
instead (sockets are compatible withselect()
). Seems to work but creates a lot of OS/2-specific #ifdefs in the sources, not very good. - Change the
RTPlpe
implementation to use the posix code path (the one Linux uses). This implies usingsocketpair
instead ofpipe
(as the latter also creates handles incompatible withselect
). Looks attractive as doesn't require any changes in the using code. - Change the using code (
DrvNAT.cpp
and others) to useRTPoll
instead ofpoll
as the former knows how to deal with OS/2 native pipes created withRTPipeCreate
.
Change History (6)
comment:1 by , 9 years ago
Owner: | set to |
---|---|
Status: | new → assigned |
comment:3 by , 9 years ago
Owner: | changed from | to
---|
comment:4 by , 9 years ago
The ways 1) and 2) result in the same, poll() / select() is working on sockets only, but NAT/Network/DHCP is still not working. No error like in #18, though, and VM is working (except for the Network -- packets are sent, but no packets are received). So, it seems, the problem is elsewhere.
The approach 3) is also tried, but unfinished.
comment:5 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
So the issue we are still seeing is unrelated to this ticket. As I also understand, this issue is different from #18 as well. So, Valerius, please create a new ticket for it.
We finally decided to stick with approach 2 for this ticket's original problem (see comment:2) and the respective changes are committed in r63. Closing this ticket.
comment:6 by , 9 years ago
Milestone: | VBox SDL Interface → VBox driver |
---|
Valerius is currently working on approach 2 to see if it works (as it requires less changes in other sources once implemented).