http://bugs.winehq.org/show_bug.cgi?id=3019
Summary: read error on reading from rtlinux FIFO from wine Product: Wine Version: 20050310 Platform: Other OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-kernel AssignedTo: wine-bugs@winehq.org ReportedBy: ad@trapdoor.de
i'm using wine to access a realtime application from a windows program by reading and writing to realtime FIFOs (/dev/rtf*). I used an old system where it worked fine for me (linux 2.4.19, RTL 3.2pre1, wine 20020804). After I changed to a new System (linux 2.4.29, RTL 3.2rc1, wine 20050310) read operations to these FIFOs failed. The windows program and the realtime-application are the same as before and still run on the old system.
I compared the source-code of the rtlinux FIFO libraries of both versions and found out, that they are almost equal excepting some cosmetic stuff.
I did the same read operations on normal files and on some other device files (e.g. /dev/random). This worked as expected. Reading from the FIFO from a native linux program also works without problems.
The windows program was compiled with a german version of Developer Studio .NET. The source code i used for testing looks as follows:
char inbuffer[32]; int result;
CStdioFile cCmdFifo;
AfxMessageBox("OpenWrite"); cCmdFifo.Open("W:\rtf1", CFile::modeWrite); AfxMessageBox("Send PING"); cCmdFifo.WriteString("PING"); AfxMessageBox("CloseWrite"); cCmdFifo.Close(); Sleep(1000); AfxMessageBox("OpenRead"); result=cCmdFifo.Open("W:\rtf1", CFile::modeRead); AfxMessageBox("ReadString"); cCmdFifo.ReadString(inbuffer, sizeof(inbuffer)); AfxMessageBox("CloseRead"); cCmdFifo.Close;
Drive W: is mapped to /dev and output of ls -la /dev/rtf1 looks like:
crw-r--r-- 1 root root 150, 1 2005-05-31 13:15 /dev/rtf1
When cCmdFifo.Readstring is called the system hangs. The same happens when using cCmdFifo.Read instead.
When calling the program with winedbg, the program still hangs. Pressing CTRL-C does not help getting more debugging information and I'm only able to exit the debugger by "quit" command (i'm not familar with using winedbg :-( ).
I was not able to compile the old wine version on the new system, so I have no information whether this version works on this system or not.