mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-05 13:29:57 -05:00
Handle pipes on platforms where they are non-existant of broken.
We do this by creating a TCP socket pair instead of a normal pipe. Since Windows isn't UNIX-y enough to support read()/write() on sockets, we also need a wrapper to handle read() vs recv() and write() vs send(). git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@840 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
12d4b5d952
commit
48d66cd5e8
9 changed files with 249 additions and 107 deletions
|
|
@ -202,19 +202,7 @@ ssize_t pa_iochannel_write(pa_iochannel*io, const void*data, size_t l) {
|
|||
assert(l);
|
||||
assert(io->ofd >= 0);
|
||||
|
||||
#ifdef OS_IS_WIN32
|
||||
r = send(io->ofd, data, l, 0);
|
||||
if (r < 0) {
|
||||
if (WSAGetLastError() != WSAENOTSOCK) {
|
||||
errno = WSAGetLastError();
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
if (r < 0)
|
||||
#endif
|
||||
r = write(io->ofd, data, l);
|
||||
|
||||
r = pa_write(io->ofd, data, l);
|
||||
if (r >= 0) {
|
||||
io->writable = 0;
|
||||
enable_mainloop_sources(io);
|
||||
|
|
@ -229,20 +217,8 @@ ssize_t pa_iochannel_read(pa_iochannel*io, void*data, size_t l) {
|
|||
assert(io);
|
||||
assert(data);
|
||||
assert(io->ifd >= 0);
|
||||
|
||||
#ifdef OS_IS_WIN32
|
||||
r = recv(io->ifd, data, l, 0);
|
||||
if (r < 0) {
|
||||
if (WSAGetLastError() != WSAENOTSOCK) {
|
||||
errno = WSAGetLastError();
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
if (r < 0)
|
||||
#endif
|
||||
r = read(io->ifd, data, l);
|
||||
|
||||
r = pa_read(io->ifd, data, l);
|
||||
if (r >= 0) {
|
||||
io->readable = 0;
|
||||
enable_mainloop_sources(io);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue